Methodology for building and tagging relevant content

ABSTRACT

Systems and methods for content tagging and creation within in an information system are described herein. Content tagging may include the processing of unstructured data as input and the transformation of the unstructured data into structured data that has context relative to a user or a group of users. The content may include an action statement suggesting at least one action for the user to perform. The tagging process may associate the action statement with a tag provided from a hierarchy of tag classifications, the tag being relevant to motivating the user to perform at least one action contained in the action statement (for example, the performance actions facilitating the user&#39;s achievement of a health goal). The content and associated tagging data may then be stored in the information system for consumption by the content suggestion engine. Further techniques for tagging and accessing tagged data are also described.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/732,676, filed Dec. 3, 2012, which isincorporated by reference herein in its entirety. This application isrelated to pending U.S. patent application Ser. No.: 13/772,697, titled“CONTENT SUGGESTION ENGINE,” and filed Feb. 21, 2013; and Ser. No.13/772,405, titled “GOAL-BASED CONTENT SELECTION AND DELIVERY,” andfiled Feb. 21, 2013; the disclosures of which are incorporated byreference herein in their entireties.

TECHNICAL FIELD

Embodiments pertain to techniques and systems for content selection andmanagement. Some embodiments relate to data-driven operations in aninformation system to identify, label, and tag relevant content providedfor output to human subjects.

BACKGROUND

Various data services select or recommend content for display to users.For example, in the self-help setting, a variety of existing dataservices provide tips, recommendations, and focused content to assist asubject human user with goal-based outcomes such as weight loss, smokingcessation, medical therapy, exercise goals, and the like. Some of thesedata services provide recommended content to a user in response touser-indicated preferences, user-indicated activity history, or manualuser requests for content. Other data services rely on an expert humanuser to determine which content is most appropriate for delivery to thesubject human user to achieve a certain outcome.

To the extent that existing data services provide automatedrecommendations or selections of content, the timing, delivery, andsubstance of the content is determined by complex predetermined rulesand attributes, or other selections influenced by manual humanintervention. For example, recommendations may be hard-coded in acontent delivery system to deliver suggestive content in a particularfashion responsive to some detected condition. A human user mustmanually designate and select content from such content delivery systemsfor display at appropriate times. Existing systems and techniques do notprovide adequate structures, categorizations, or rules for retrieving ordisplaying stored content without extensive programming or oversight.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an information flow diagram of interaction with anexample information system and a content suggestion engine according toan example described herein.

FIG. 2 illustrates an information flow diagram including data operationswithin a content suggestion engine of an information system according toan example described herein.

FIG. 3 illustrates a process of tagging unstructured data to producestructured data that is consumable by a content suggestion engineaccording to an example described herein.

FIG. 4A illustrates a data format diagram including a format for actionstatement data consumed by a content suggestion engine according to anexample described herein.

FIG. 4B illustrates a data format diagram including a format for taggingof data consumed by a content suggestion engine according to an exampledescribed herein.

FIG. 5 illustrates associations between example content and tagsaccording to an example described herein.

FIG. 6A illustrates a process of using tagged suggestion content inconnection with a filtering and weighing process 600 by a contentsuggestion engine according to an example described herein.

FIG. 6B illustrates a process of entering, tagging, storing, andmanaging content by a content suggestion engine according to an exampledescribed herein.

FIG. 7 illustrates a Content Suggestion Tuple data structure forencapsulating a candidate piece of content to be considered as asuggestion to a client according to an example described herein.

FIG. 8A illustrates a Content Type Tuple data structure for describing acontent type of a content suggestion according to an example describedherein.

FIG. 8B illustrates a Semantic Tagging Tuple data structure fordescribing the degree to which a tag is compatible with a client profileaccording to an example described herein.

FIG. 9 illustrates a Prior Suggestion Tuple data structure forencapsulating knowledge of prior suggestions according to an exampledescribed herein.

FIG. 10 illustrates a Tagging Index Tuple data structure forrepresenting essential information regarding client characteristicsaccording to an example described herein.

FIG. 11 illustrates a Client Profile data structure for storingclient-specific information according to an example described herein.

FIG. 12 illustrates a Supporter Profile data structure for storingsupporter-specific information according to an example described herein.

FIG. 13 illustrates an object-relational diagram for storing content andcontent tagging according to an example described herein.

FIG. 14 illustrates a user interface for a tagging facility to performtagging of various content items according to an example describedherein.

FIG. 15 illustrates a user interface for form-based editing of contentproperties and tags according to an example described herein.

FIG. 16 illustrates an example flowchart of a method for applyingtagging to suggested action content according to an example describedherein.

FIG. 17 illustrates an example system configuration of an informationsystem arranged to provide suggested content according to an exampledescribed herein.

FIG. 18 illustrates an example of a computer system to implementtechniques and system configurations according to an example describedherein.

DETAILED DESCRIPTION

The following description and the drawings sufficiently illustratespecific embodiments to enable those skilled in the art to practicethem. Other embodiments may incorporate structural, logical, electrical,process, and other changes. Portions and features of some embodimentsmay be included in, or substituted for, those of other embodiments.Embodiments set forth in the claims encompass all available equivalentsof those claims.

The present disclosure illustrates techniques and configurations toenable the filtering of content and related content delivery actions, togenerate content relevant for human activities to accomplish somepredetermined or ongoing goal or set of goals. The type, substance, anddelivery of the content serve to provide a human user with motivatingsuggestions, encouragement, and positive reinforcement towards attainingthis goal or set of goals.

The computing systems and platforms encompassed by the presentdisclosure include a mobile or web-based social networking informationservice, interacting with a suggestion engine, that is used to motivatea human user to change behavior (such as adopting healthy lifestylechoices and activities that are likely to lead to a positive healthoutcome) through a persistent intelligent coaching model. Theinformation service can provide intelligent decision-making andreinforcement of certain content and content actions, to facilitateencouragement or motivation that increases the likelihood of change inhuman behavior to achieve the goal. In particular, the informationservice focuses on encouraging a human user to complete a series ofdiscrete, separate actions that achieve small goals, which, incombination, may help achieve a larger overall goal. For example, in aweight loss setting, this can include a series of tens, hundreds, orthousands of discrete diet and exercise actions that, in combination,may help the human user achieve a weight loss goal.

In conjunction with operations of the suggestion engine, the informationservice can adapt to learn a user's behavior patterns and offerpersonalized, relevant, or timely suggestions, motivations, or otherdirected content to help the human user achieve the goal. Theinformation service also can enable peer and professional support for ahuman user by creating and maintaining human connections relevant to thegoal, such as through establishing social networking connections andsocial networking interactions customized to the goal. As the socialnetwork or the behaviors of the human user change, the informationservice can adapt to alter the actions, motivations, or other directedcontent to remain relevant, personal, or timely to the human user. Inthis fashion, the information service is intended to cause behaviorchanges of the human users through promotion of actions to achieve theuser's goals, with social encouragement by friends, family, or teammembers (supporters), personal motivations reinforced with reminders, ornew structures in their living environment, such as can be helpful inaltering habits to achieve the goal.

The information service can include various applications andcorresponding user interfaces to be viewed by the human user andsupporters of the human user to encourage beneficial interactionsbetween the human user and the supporters. These interactions, which maybe driven by suggested content and suggested content delivery types ortimings, are used to cause activities that lead to the intended behaviorchange(s) in a human user. Accordingly, the content suggestion engineacts in a larger system of an “intelligent” information system thatprovides appropriate messages and content selections to the human userand supporters at the right time.

FIG. 1 illustrates an information flow diagram of interaction with anexample information system 100 configured for providing content (e.g.,motivations, recommendations, suggestions, facts, or other relevantmaterial) to human users. The information system 100 can include asuggestion engine 102, participation from a supporter network 104 ofvarious human or automated users, and participation from a subject humanuser (further referred to herein as a “client”) 106.

The suggestion engine 102 can be configured to make decisions to deliverrelevant content dynamically (e.g., at the proper time, in the propercontext, and with the proper communication medium) using data conditions108 maintained for the client 106. The data conditions 108 maintainedfor the client 106 may include information such as: one or more goals ofthe client; demographic information such as gender, age, and familialinformation; medical information such as medical conditions, medicalhistory, and medical or physical restrictions; a psychological profileand other psychological information such as personality type, dailyroutines or habits, emotional status, likes and dislikes; and availableexternal devices (e.g., smart phone or smart phone applications, smartweight scales, smart TV, video game systems, etc.); client desiredcoaching programs and models (e.g., diet style, exercise focus, ormental health); and information relevant to discrete activities, such aspresent or scheduled locations of the client, and time to accomplishactivities; and information relevant to the goal, such as time toachieve the goal, difficulty of achieving the goal; and like informationfor conditions relevant to the human user, supporters of the human user,or the overall goal.

The specific content selection operations of the suggestion engine 102are directed to change the behavior of the client 106, such as to helpthe client 106 achieve a defined or derived goal with a series ofcontent messages that are intended to invoke action by suggestedactivities and events. Delivery of the content may be provided directlyfrom the suggestion engine 102 to the client 106 with a content deliveryflow 110. With the content delivery flow 110, the suggestion engine 102can query the client 106 periodically or randomly to gain informationand feedback that can affect what content is delivered to the client106. Responses by the client 106 may be provided back to the contentsuggestion engine through a content feedback flow 112 to indicate theresults of such querying or feedback.

The suggestion engine 102 may also provide indirect content deliveryflows 114, 116 through a supporter network 104, to enable the supporternetwork 104 to provide content to the client 106 at appropriate times.Specifically, the suggestion engine 102 can indirectly provide contentselections to the user using an indirect content flow 114, andorchestrate resources of the supporter network 104 by engaginginfluential persons (e.g., family, friends, or others that influence thehuman user (the client 106)) to forward or deliver the content to theclient 106.

The supporter network 104 may also facilitate interaction between theclient 106 and healthcare providers or other professionals (e.g.,nutritionists, personal trainers, psychologists, or behavior coaches,among others). Such interaction from the supporter network 104 may beused to proactively guide personalized and critically timed suggestions(e.g., such as by sending a message that encourages a specific activityto the client 106), or persistently coaching, guiding, motivating, orfocusing the client 106 to complete actions to achieve his or her goal.

Additionally, members of the supporter network 104 may generate andprovide suggestions back to the content suggestion engine 102, directlyor with crowdsourcing-type mechanisms distributed among a plurality ofpersons. For example, a supporter can directly author suggestions thatare sent to the client 106, or edit, modify, or unify suggestions withslight modifications for use with the human user. Based on theeffectiveness of the content created by the supporter network 104, apool of suggestions may be created.

Thus, the supporter network 104 may be used to generate or forwardcontent selected by the content suggestion engine 102, using indirectcontent flow 116. For example, the suggestion engine 102 may provide asupporter member of the supporter network 104 with pre-formatted actioncontent that can be sent directly from the supporter to the client 106using a recognized communication medium, such as by forwarding andcustomizing a text message, an email message, a social network message,and the like. Suggestions directly received from members of thesupporter network 104 are more likely to reduce barriers or excuses ofinaction, and empower the client 106 to perform an action or actionsthat will help achieve their goals. Feedback may also be provided backto members of the supporter network 104 from the client 106 (such as aconfirmation that the client 106 performed the activity, a message thatthe client 106 enjoyed the suggestion, a message asking for support toperform the activity, and the like).

The suggestion engine 102 can communicate with the supporter network 104and the client 106, such as to obtain information about the client 106or provide messages to the client 106 or to the supporter network 104.The supporter network 104 can personalize the message and send themessage to the client 106, such as shown in FIG. 1. By having the client106 receive the message from the supporter network 104, the message canhave more impact and potentially be more motivating than if it camedirectly from the suggestion engine 102.

Suggestion Content Types and Delivery

Appropriate messages, multimedia, and other content delivered to theclient 106 from or on behalf of the information system 100 are referredto herein as “suggestion content,” as the content can be selected andproduced by the content suggestion engine 102. Suggestion content caninclude content from one or more messages that the client 106 andsupporter network 104 receive that are collectively intended to attracthuman attention and cause the client 106 to perform some action. Thesuggestion content can be tailored and customized to be appropriate tothe client 106, time, and individual intended actions. The suggestioncontent can include a variety of formats, such as content that indicatesgreetings, actions, motivations, prompts, reminders, and rewards.

Described herein are types of suggestion content, how suggestion contentcan be aggregated, and techniques for creating and delivering thesuggestion content. Further described herein are system, apparatus, anddevice configurations to implement the suggestion engine that can enablea particular selection of suggestion content to be sent to the supporternetwork 104 or client 106. As used herein, suggestion content caninclude content delivered to the client 106 intended to cause an actionrelated to an ultimate goal. Suggested action content sent to the client106, as further described herein, may be constructed from content thatincludes an action statement 406, and a pre-statement 404 or apost-statement 408 (as further described below with reference to FIG.4A).

As used herein, motivational content is a specific subset of suggestioncontent that is intended to improve the likelihood of the client 106performing a suggested action by appealing to some human interest.Motivational content may be embodied by: various prompts that include arequest for a response from the client 106 or supporter network 104;reminders that include a statement that reminds the client 106 or asupporter from the supporter network 104 that an action on their part isdue; rewards that include statements provided to the client 106 orsupporter that are congratulatory or explain something being given tothe client 106 or supporter; or supporter messages that include contentspecifically intended for the supporter.

Content provided by the information system 100 may be stored andmaintained in structured or unstructured form. Unstructured content caninclude suggestion content not yet edited, tagged, or final reviewed;whereas structured content can include content that has been edited,tagged, and reviewed, and ready for use by the suggestion engine 102 (asfurther illustrated with reference below to FIG. 2).

Content can be tagged for use in defined retrieval operations. Suchtagging can include a psychological assessment matching. A client 106can be asked to take assessments for engagement, receptivity, or socialstyle. The content can be tagged in such a way that the informationsystem 100 matches the client 106 with the style of the content suitedfor them, thereby “personalizing” the interactions between theinformation system 100 and the client 106, such as to provide a moreeffective or engaging environment. The information system 100 canprovide content for each of eating, movement (e.g., actions for theclient 106 to physically accomplish), and self-view. The tags canprovide and store this information.

As further discussed herein, the tagging can include “behavior change”tagging. A current behavior change theory promotes a combination of“sources of behavior change” that promote a higher probability ofchanging people's behavior. These sources of behavior change includeitems that improve an individual's intrinsic/extrinsic motivation andaptitude, group factors and power to cause behavior change, andenvironmental factors and power to cause behavior change. Presentingsuggestions that fit in multiple behavior change areas can be moreeffective than presenting suggestions in just one or a few of the areas.Additionally, the client 106 can complete a lifestyle questionnaire,which determines, such as by using Boolean logic, different “problems”that the client 106 may have. Content can be tagged with these problems,such as to tag content that relates to the problem. The client 106 canwork on the problem by choosing specific suggestions or playlists ofsuggestions tagged with that problem.

In one example use of a suggestion engine 102, the client 106 is theperson that the information system 100 is intended to help; thesupporter network 104 can include one of the persons providing aid tothe client 106—this person could be a team member, friend, familymember, or paid supporter such as personal trainer, among others. Thus,overall users of the suggestion engine 102 can include any person usingthe information service (and accompanying applications, websites, andservices), including the client 106, supporters in the supporter network104, an administrator, and the like.

The information system 100 facilitates interaction among the client 106and supporters in the supporter network 104, such as encouraging clientsand supporters to interact in the social network, to accompany severaltypes of content. Content can be created that gives clients andsupporters specific actions to perform, and this content can bedelivered in a way that encourages the supporter or client 106 toperform the action. The content can be designed to be delivered to theclient 106 either directly or through the supporter. A plurality ofaction statements (further described with reference to a formattedsuggested action message 402 depicted in FIG. 4A) providing respectivesuggested actions can be presented to the client 106 for participation.Other types of content can be used to increase the probability of theclient 106 performing the suggested actions.

FIG. 2 illustrates an information flow diagram of an example of dataoperations 202 of the suggestion engine 102. Data 208A and 208B,illustrated as various inputs, can be provided in a structured format.Structured data in one example is unstructured data that has undergone aprocess of formalization, structuring, categorization, and tagging inthe information system 100. The data operations 202 serve to map data208A to a personality type 210 or characteristic of the client 106, andan ecosystem of conditions 212 is factored to produce appropriate data208B that addresses one or more environmental goals 204.

Data input for operations 202 of the suggestion engine 102 may originatefrom a variety of data sets and data types, but some data types and datainputs may not motivate a human subject to attain a particular goal at aparticular time. Data 208A can be provided from client personal data,such as location, psychological state, lifestyle, occupation,relationship status, or coaching style, among others, collected ordetermined for the client 106. A client's personality type 210, such ascaregiver, colleague, competitor, authoritarian, optimist, skeptic,fatalist, activist, driver, analytical, amiable, expressive, orcombinations thereof, can be inferred or otherwise determined from thedata 208A (and changed or adapted as necessary using contextualinformation 218 or data 208B).

An ecosystem of conditions 212, including barriers 214 to and incentives216 for achieving the one or more environmental goals 204 can bedetermined. The ecosystem of conditions 212 generally reflectsinformation items that the information system 100 is aware of, andrelevant factors to achieve success. This may include data such as thetime of day, client location, medical records of the client 106, andlike information or conditions that may affect the client 106.

Barriers 214 considered with the ecosystem of conditions 212 can includethe client 106 having a physical ailment, such as a bad knee or asthma,not having a phone, not having supporters, does not like working out,cannot afford the services, having a busy schedule, medical conditions(such as allergies or taking medications), among others. Incentives 216considered within the ecosystem of conditions 212 can include thingsthat the client 106 likes (e.g., brand name shoes or specific music),peer pressure, a good feeling gained from performing some activity(e.g., working out), a discount on goods or services provided, or anupcoming event (e.g., a half marathon). The data 208A, 208B and theecosystem of conditions 212 can be determined through obtaining answersto questions, such as through answers to episodic questions posed to theclient 106 (the episodic questions occurring at determined times,places, or contexts). The ecosystem of conditions 212 may furtherprovide contextual information 218 to provide additional data to helpinterpret or understand the barriers 214, incentives 216, or the data208A, 208B.

The data 208B can be directly or indirectly related to the one or moreenvironmental goals 204. The data 208B can include a reward forachieving the goal(s) 204 (e.g., kudos), a type of diet to be followed,a reason for wanting to achieve the goal, or a date by which to achievethe goal, among others. The environmental goal(s) 204 may includephysical activity goals, such as to lose a certain amount of weight,change a habit, such as to quit smoking, quit biting fingernails,workout a specific number of times during a period of time, or toachieve a physical challenge such as running a marathon or climbing amountain, among others.

The one or more environmental goals 204 are not necessarily limited to acentral, ultimate goal (such as losing weight, or stopping smoking), butcan include a number of subordinate or associated goals (such asdeveloping healthy habits, a positive self-image, or confidence orenjoyment of the goal-reaching process) that help the client 106 achievethe ultimate goal in a positive fashion. Thus, the environmental goals204 may be broader than a single goal and can include a number ofadditive, complimentary, or interrelated actions and results thatproduce beneficial outcomes and experiences for the human user.

Humans have preferred modes of conversation and interaction. Apersonality style to invoke these preferred modes can be inferred ordetermined from answers to questions in questionnaires. The informationsystem 100 can assist the client 106 in completing severalquestionnaires that show these preferences. The personality styles canindicate a client's receptivity (e.g., the preference for a certain toneof message); engagement (e.g., a bias towards immediate action versusthoughtful consideration when presented with a challenge to change); orsocial style (e.g., an intersection of assertiveness andresponsiveness). The suggested action content delivered from theinformation system 100 and the content suggestion engine 102 can bedesigned to fulfill all these preferences.

Structured and Unstructured Data

FIG. 3 illustrates a process 300 of tagging unstructured data 302A toproduce structured data that is consumable in an information system by acontent suggestion engine 102 according to an example described herein.As illustrated, a tagging process 304 serves to transform unstructureddata 302A into structured data 302B, with the structured data 302Brelating (in varying degrees) to an environmental goal 204.

Unstructured data 302A includes suggestion content not yet edited,tagged with the tagging process 304, and final reviewed. Structured data302B includes content that has completed editing, tagging, and review,and is ready for use by the suggestion engine 102. The unstructured data302A becomes structured and has context relative to the client 106through a process of formalization, structure, categorization andtagging 304 of this disparate data.

An Environmental Goal 204 is a targeted result established by a client106 within a specified variable timeframe (e.g. lose two pounds in oneweek; arrive at recon point within 24 hours, etc.). The EnvironmentalGoal 204 may have structured data 302B associated with it (e.g. timezone, season, color, coordinates, weight in pounds, current weather,psychological state, etc.) The environmental goal 204 may be behaviorrelated (e.g., habitual patterns over time).

FIG. 4A illustrates a data format diagram including an example of aformat for a suggested action message 402 that can be sent to thesupporter network 104 or the client 106. A suggested action type ofcontent can be provided from the suggestion action message 402, which issent to the client 106. The suggestion action message 402 may include anaction statement 406, and a pre-statement 404 or a post-statement 408(as further detailed below with reference to FIG. 4B). An actionstatement 406 can provide the part of the suggested action message 402that provides the “do this” statement; a pre-statement 404 andpost-statement 408 can provide the part of the suggested action message402 that personalizes the tone of the “do this” statement (thesestatements precede and follow the action statement, respectively).Examples of action statements 406 are shown in FIG. 4B.

The pre-statement 404 or post-statement 408 can be tailored to fit thepersonality type 210 of the client 106. For example, if the client 106is determined to have a competitor personality type 210, thepre-statement 404 can be “Your teammates and supporters are watching”;“We need you”; or “It's coach [insert name] here . . . ”; among others.

The action statement 406 can convey the suggested action to the client106, such as: “you are going to the park today”; “you are going for arun today”; “you are going to eat a salad today”; among others. Thepost-statement 408 can be an encouraging or motivating statement that istailored to the personality type 210 of the client 106.

In the example of the client 106 with the competitor personality type210, the post-statement can be statements such as: “You cannot win ifyou do not try”; “You will have the best day of anyone this week”; or“On your marks, get set, go”; among others.

Further, the structure of content can include an action statement (e.g.,a recipe), pre-statement, or post-statement, customized to: specificpsychological typing; motivational content; prompts; greetings; rewards;or messages to supporters. A suggested action message 402 can be“personalized” to a client's personality type 210. An action statement406 can be preceded with a pre-statement 404 (e.g., a greeting), andfollowed with a post-statement 408 (e.g., appropriate reminders,prompts, or motivations). Completion of, or non-completion of asuggested action message 402 can be followed by either a reward (e.g.,kudos) or motivation intended to keep the client 106 trying again,respectively.

Content Delivery Programs for Suggested Content

A playlist is a set of suggested actions (each action containingsuggested content) that can be presented to the client 106 as a single“set of suggested actions.” This can make the choosing of actions lessfrequent, and provide a short-term context for the client 106. Theclient 106 may desire repetition, variety, to concentrate on aparticular area, or to be generally healthy. Playlists can be designedto link suggested actions together to create a coordinated effort thatcan incorporate client desires.

The playlist(s) can be chosen as a specific item by the client 106. Theplaylist may include suggested actions during a period of time, such asa day, week, ten days, months, quarter, year, etc. The client 106 maywish to choose a fully or partially coordinated effort that is longerthan a single action, e.g., making sure they eat a healthy breakfast forone week. The playlist feature can allow the client 106 to choose thisas a single item. Each suggested action message 402 in the playlist canbe set for specific times as designated in the playlist (e.g., every xperiod).

A program can be: 1) a designation of a specific type of suggestedaction message 402 defined in keywords (e.g., Mayo Clinic diet, WeightWatchers® diet, etc.), where the suggestion engine 102 preferentiallychooses actions or playlists to present to the client 106 as a functionof the keywords; or 2) a set of playlists presented in a series, such asa series that has a defined objective (for example, eat a good breakfastfor four (4) weeks, which can include suggested action messages for bothpurchasing the materials for a good breakfast, such as oatmeal, as wellas allowing enough time to eat it before starting the day's otheractivities).

For programs of type 1, the client 106 can be offered the option ofchoosing a program to follow. For programs of type 2, users, such asemployees or professional supporters, can create programs by selecting aseries of playlists, and then providing a definition, keywords, oradditional tags to be included by the program. The program can include a“creator” designation for the user who created the program and the“creator” can title the program. Choosing a program can give the client106 context for why he or she is performing the specificeating/movement/self-view action(s).

A goal 204 set by the client 106 can be a powerful motivation. The goal204 can be used to determine what percentage of the suggested actionmessages will be selected from each of the eating/movement/self-viewareas, for example. The goal 204 can be used to motivate the client 106by reminding the client 106 of the specific goal 204 he or she haschosen.

The suggestion engine 102 can deliver appropriate suggested actioncontent to the supporter network 104 or client 106 as a function of aset of rules. These rules can include how the content will be deliveredto the client 106 or supporter network 104. The suggestion engine 102can determine one or more suggested action message or playlists based onthe client's psychological, lifestyle, or preference and restrictionassessment, or the client goal(s) 204. The suggested action message 402can be sent to the supporter for forwarding on to the client 106 ordirectly to the client 106 depending on rules or preferences.

The content can follow a general flow. The client 106 can be presentedwith a number of suggested action messages 402 (or playlists), fromwhich the client 106 can choose one or more. The suggested actionmessages 402 can be presented as just the action statement 406, with nopersonalization. A timer of a specified period, such as twenty-fourhours, can start at or near the time the suggested action is chosen. Thesuggested action can have a designated time of day associated with it,such as morning if the action is breakfast, for when a reminder shouldbe sent—the client 106 can designate times that he or she regularly doesthings like eat breakfast, lunch, or dinner, when they exercise, andwhen he or she struggles with being hungry. If the client 106 did notset preferred times when choosing a suggested action message 402, thesystem can ask the client 106 when that type of action is typicallydone.

One or more reminders can be sent to the client 106. The reminder caninclude personalization—the reminder can be provided at the beginning ofthe next day, or at or near a designated time. A motivation or promptcan be sent to the client 106 at times before or after a reminder. Aprompt can be sent to the client 106 after a specified period of timehas lapsed. This prompt can ask the client 106 if he or she hascompleted the suggested action. If the client 106 has completed thesuggested action, the client 106 can be rewarded with reward points(also referred to herein as “kudos”) or given a congratulatorymotivation. If the client 106 has not completed the suggested action,the client 106 can be given a conciliatory motivation, such as “you willget it next time!” The client 106 can be asked if: 1) they would like totry again; or 2) move on to the next suggested action, or somethingsimilar. If the client 106 responded that he or she would like to tryagain, the previous action can be presented at an appropriate time withappropriate motivations and prompts. If the client 106 responded that heor she would like to move on to the next suggested action, theinformation system 100 can log the incomplete suggested action as notcompleted and send the next task to the client 106. If the client 106has chosen a playlist of suggested action messages 402, the steps abovecan be substantially followed, without being asked if he or she wouldlike to try again. If the client 106 does not perform a suggestedaction, he or she can be presented with a conciliatory motivation, andthen reminded of the next task in the play list. When the client 106 issent a suggested action message 402 from a playlist, the playlist name,or the order of the suggested action message 402 can be included in theinformation available to the client 106.

An action statement 406 defines the action being sent to the client 106,such as “Take a walk in a park”; “Try this recipe”; or “Write the day'sbest moments in your journal before you go to bed”; among others. Apre-statement 404 and a post-statement 408 can provide a short statementthat personalizes the suggested action message 402 for a specificpersonality type 210. The personalization can be accomplished by havinga person use a database of personalization examples to create the entiresuggested action message 402, and filtering the created suggested actionmessages 402, such as by using the content suggestion engine 102, tohelp ensure the language used is appropriate. Selecting tagged contentof a particular suggested action can be accomplished by selectingcontent based on the unique tag for the action statement 406, selectingcontent based on the a tag that defines the relevant personality type210 of the client 106, or both.

After the client 106 has chosen a suggested action, the informationsystem 100 can provide an appropriate motivation, prompt, reminder, orreward statement. The number of motivations, reminders, and prompts canbe defined in a suggestion engine 102 database, and can be based onpsychological assessments of the client 106. A psychological assessmentcan include determining a receptivity of the client 106 to amotivational or encouraging statement, such as whether the client 106 isa caregiver, colleague, competitor, or authoritarian; a client'sengagement in achieving their goal 204, such as whether the client 106is an optimist, fatalist, activist, or skeptic; a client's social style,such as whether the client 106 is a driver, amiable, analytical, orexpressive; or a combination thereof. For example, a message for acaregiver can take the form of admonition, communicate to the client 106that the substance of the message is good for him or her, or besupportive yet directive. Such persons can tend to assume a hierarchicalrelationship in which they have some form or power over another, yettend to be more challenging than nurturing in their interactions. Amessage for an optimist can include encouragement to act, support orpressure from their social network, increasingly persistent reminders toact, or a combination thereof. Such persons may tend to think about thesuggested action, search for ways to ensure success, overthink orover-plan, or have a high level of excitement that can diminish withoutaction. A message for an analytical person can include statistics ordata that provide support for why the action should be accomplished, orit can be more task-oriented rather than person-oriented. Such personscan be perfectionists, critical of themselves, systematic, wellorganized, prudent, or a combination thereof.

Data Formats and Data Tagging

FIG. 4B illustrates a data format diagram including an example of aformat 410 for tagging of data consumed by a content suggestion engine102. As illustrated, the format 410 defines a series of tags (difficulty414, duration 416, behavior change 418, and restrictions 420) for a setof action statements 406. For example, the action statement 406 “Walk inthe Park” may be tagged with a tag for difficulty 414 of “Low”; forduration 416 of “15 Minutes”; for behavior change 418 of “Group”; andfor restrictions 420 of “Mobility.” FIG. 4B further illustrates theapplication of these tags for other action statements such as “EatOatmeal Breakfast,” “40 Minute Rollerblade”; and “Eat Whole GrainCereal.”

A pre-statement 404, post-statement 408, or action statement 406 can betagged. The action statement 406 can be created by writing, finding, orotherwise defining relevant actions. For example, to pursue actionsrelevant to weight loss, actions relevant to exercise may includewalking, jogging, running, soccer, hockey, tennis, gardening, yard work,swimming, rollerblading, basketball, football, Frisbee®, weight lifting,stairs, jump roping, kickboxing, ZUMBA®, biking, yoga, Pilates, dancing,bowling, volleyball, racquetball, rowing, softball, baseball, skating,skiing, tubing, eating, snowboarding, water boarding, boxing, takingpictures, or writing, and the like. Action statement tags relevant toweight loss may be directed to tags such as eating, movement, self-view,behavior change category, personality type, difficulty, time duration,timeliness, lifestyle, restrictions or limitations, or combinationsthereof. If an action or statement could be relevant to more than one ofthese areas, the action or statement may be tagged with all relevantareas.

The action statement 406 can be personalized, such as by choosing apre-statement 404 or a post-statement 408, from pre-drafted or templatesof pre-statements 404 or post-statements 408. The pre-statement 404 orpost-statement 408 can be combined with the action statement 406. Theresulting suggested action message 402 can be edited into engaging,appropriate, and coherent language, such as by editing the pre-statement404 or post-statement 408 to include reference to the action statement406, to make it unique to the action statement 406, or by adding anexplanation of the action, such as by adding a picture or video to helpdescribe the action statement 406. The explanation or a link thereto canbe stored along with the suggested action message 402 in a suggestedaction database 1704 (as referenced in FIG. 17).

In some examples, a behavior change tag can include an individual'sintrinsic/extrinsic motivation, such as for suggested actions intendedto help the client 106 engage in the activity of the suggested action;individual aptitude, such as for a suggested action intended to helpimprove knowledge, skills, and strengths to do the activity; groupfactors, such as for suggested actions intended to have other people(e.g., a supporter from the supporter network 104) encourage the client106 to perform the suggested action or refrain from a deleteriousbehavior; group power for causing behavior change, such as for suggestedactions intended to provide help, information, or other resources,occurring at a particular time; environmental factors, such as forsuggested actions intended to provide a reward, promotion, perk, orcost, such as to encourage the suggested action or discouragedeleterious action; environmental power for causing behavior change,such as for a suggested action intended to help the client 106 stay oncourse; or combinations thereof. A balanced set of actions from many ofthe behavior change areas can improve the probability of the client 106meeting their goal(s) 204. The system can promote this balanced set ofactions by tracking the behavior change areas chosen, and providing asuggested action message 402 including a tag from those behavior changeareas that have been performed less often by the client 106.

In some examples, a psychological assessment tag can be associated witha pre-statement 404, action statement 406, or post-statement 408, suchas to match a personality type 210 to the respective statement. Thepersonality type 210 may be used in many settings to extensivelycustomize the content to the client's particular personality.

In some examples, a difficulty tag (e.g., for difficulty 414) can beassociated with a pre-statement 404, action statement 406, orpost-statement 408, such as to indicate how hard the task is tocomplete, or to associate a pre-statement 404 or post-statement 408 toan action statement 406 of corresponding difficulty. The difficulty tagcan indicate whether the suggested action is easy to execute (e.g.,beginner or low difficulty) or that the suggested action does not take alot of resources (e.g., time, money, or expertise to execute); involvessome difficulty (e.g., medium difficulty) in executing (e.g., capabilityof the human) or that the action requires some resources to execute; orwhether the suggested action is difficult (e.g., high difficulty) toexecute (e.g., expert input) or requires a significant amount ofresources.

A lifestyle tag can include typical times for actions to be presented,such as suggesting breakfast in the morning, or if the client 106indicates he or she tends to wake up at a certain time, then suggestingbreakfast shortly after client 106 wakes up.

A quality check of at least part of the suggested action message 402(e.g., combination of pre-statement 404, action statement 406, orpost-statement 408) can be performed before the suggested action message402 is delivered to the client 106 (or supporters, as applicable). Thepre-statement 404 can be a short message that references an actionstatement 406 and provides the action statement 406 with a psychologicalmatch. The pre-statement 404 and post-statement 408 can be matched, suchas to be used together with an action statement 406. The pre-statement404, post-statement 408, or action statement 406 can be edited forlength or sentence structure, such as to be coherent or include lessthan or equal to a certain number of characters, such as 140 characters(for example, for delivery by short message service (SMS), Twitter, orother messaging services). The edited statements can be recorded in adatabase (e.g., the suggested action database 1710 illustrated in FIG.17) as templates for use in future statements.

Other possible types of tags can include motivational, prompt, greeting,reward, or combinations thereof. A message (e.g., a suggested actionmessage 402) can be tagged as a message to a supporter, such as forsuggested actions that are intended to promote a supporter to engage theclient 106.

Like an action statement 406 or suggested action message 402, a playlistcan include a name, keyword, description, or timing constraints.Reminders can be created to let the client 106 know that the suggestedaction message 402 in a playlist will expire in a specified amount oftime. The system can include rules, such as in a rules database 1704 (asdescribed with reference to FIG. 17), for how many playlists can berunning at a time, such as no more than three playlists can be runningat any given time for the same client 106. The playlist can be presentedto the client 106 in a manner similar to how a suggested action ispresented.

A client 106 can choose a program with specific keywords ordescriptions, such as a keyword or description that is provided with asuggested action or playlist. This can help the system match aparticular client already using other programs with a suggested actionappropriate to that program or particular client. This can also helpprofessional supporters set up a program for the client 106 to follow.For example, if the client 106 chooses a program for following a MayoClinic-approved diet, the suggestion engine 102 can provide a suggestedaction message 402 or playlists to the client 106 with “Mayo” in theassociated keyword or description. The program can have a name,keywords, or description—similar to the action statement 406. Thedescription can include the timing of the playlist. Each action in aplaylist can expire in a specified amount of time. Reminders can becreated to let the client 106 know that the suggested action message 402in a program will expire. Rules for how many programs can be running atthe same time can be defined, such as a maximum of three programs thatcan be run for a client 106. Delivery of the program to the client 106can be similar to delivery of a suggested action. Programs can beapproved by a system user, such as a system administrator, prior toallowing the client 106 access to the program.

As a more detailed example of tagging, suggested content may be taggedwith one or more tags to indicate various attributes of content andcontent items. For example, a set of textual characters, a code, orother identifier may be associated with particular attributes forapplication to content items. A single tag may be associated with aplurality of content items, establishing a one-to-many relationship.

As an example of the application of a tag that indicates “Timeliness”,and designates that a tag should be sent during a specific time duringthe day, the following tags may be applied:

TABLE 1 “Timeliness” Tags Timeframe Tag First thing in the morning(breakfast, getting MOR up, etc.) Noon time (lunchtime, etc.) NOO Earlyafternoon (2-4PM) EAF Evening (dinner time, etc.) EVE Right beforebedtime RBB

As an example of the application of a tag that indicates “PhysicalRestrictions,” the following indicates restrictions to designate, inwhich activity the human client should not be engaging in, and what foodcan the human client not eat. For example, if the client 106 cannot orshould not be engaging in activity per a doctor's order, the followingtags may be applied. (Restrictions may be applied on a temporary orpermanent basis).

TABLE 2 “Physical Restrictions” Tags Type of Restriction TagWeight-bearing on hips, knees or ankles WBLE Weight-bearing on arms,elbows, wrists, WBUE fingers Milk allergy MA Citrus allergy CA Eggallergy EA Peanut allergy PA Tree nut allergy TA Shellfish allergy SAWheat allergy WA Soy allergy SYA Gluten Allergy GA Vegetarian V Kosher KHalaal H

As another example, a tag may be applied to multiple sets of data pointsand data values. For example, in categories of poor self-image detectedfor a client, multiple detected problems may stem from a common tag:

TABLE 3 Tags Applied to Multiple Content Items Low self SVSE Poor bodyimage-not toned enough esteem Poor body image-too much fat Poorself-talk SVST Negative self-talk that focuses on flaws, mistakesNegative self-talk that focuses on not being able to do something orachieve a goal Lack of SVP Perceiving they are more overweight than theyaccurate actually are perception of self Fear SVF Fear of failing Fearof succeeding Fear of looking foolish or silly Unsupportive SVUCConversations with family and friends around not conversations beingable to lose weight (family, Conversations with family and friendsaround the social) benefits about the status quo Lack of SVI Lack offollow through integrity Not truly committing to an action Lack of SVALazy action Competing priorities

Another example of tagging that may be applied as a psychologicalattribute is a “behavior change” tag. Behavior change tags may beapplied to identify suggestion action items that improve an individual'smotivation and aptitude, group factors and power, and environmentalfactors and power to help change their behavior. In one example, sixbehavior change areas corresponding to personality types andpsychological profiles are defined and applied as tags to variouscontent:

Individual's Find ways to have them want to engage in theintrinsic/extrinsic activity Motivation Individual Aptitude Have themimprove the knowledge, skills, and strengths to do the right thing evenwhen it is hardest. Group factors to behavior Have other people(supporters) encouraging the change right behavior and discouraging thewrong behavior Group power to cause Have others provide the help,information, and behavior change resource required at particular timesEnvironmental factors Make rewards, promotions, perks, or costs causingbehavior change encouraging the right behaviors and discouraging thewrong behaviors Environmental power to Make sure there are enough cuesto stay on cause behavior change course. Have the environment (tools,facilities, information, reports, proximity to others, policies) enablethe right behaviors and discourage the wrong behaviors

Application of each of these areas as tags to suggested action contentenables customization in a context-sensitive fashion. For example, theuse of certain types of suggested actions tagged with an “individualaptitude” tag may be appropriate to a human subject at one point intime; whereas suggested actions tagged with a “group factors” or“environmental factors” tag may be more appropriate to the human subjectat other times. A psychological profile of the client 106 (which may beadapted over time) may also indicate the types and amounts of usage ofthe various categories.

The theory behind this behavior change model states that these areasimprove the probability of a human subject making the desired behaviorchange. These tags may accordingly be used on action statements providedby the content suggestion engine 102. The content suggestion engine 102will be able to track the clients' use of the action statements in eachof the areas and preferentially suggest actions that have many areasincluded.

These behavior change tag types corresponding to personality profilesmay also be used to directly affect the type, format, and result ofpre-statements 404, action statements 406, and post-statements 408. Inone example, the communication style may be provided from a variety ofcustomized profiles, such as Caregiver, Colleague, Competitor,Authoritarian, and the like, to tailor the content of a suggested actionmessage 402.

TABLE 4 Suggested Action Messages by Communication Style Pre-statementsAction statement Post-statement Communication Style: Caregiver This isyou being You are going to the park This is what healthy really healthy:today to take some looks like. It's time for your pictures- You'll feelgreat after. “medicine.” You'll have a great time. Your healthy You cando this. actions are ready: We're sure it's going to Ready (or not), begreat. This is your caregiver (name) coming to you live . . .Communication Style: Colleague Time for you to You are going to the parkWe're all in this together. get going, today to take some Every time youdo this Hey, it's time for pictures- it's one more step to Woohoo, it'stime being healthy. for: We're rooting for you. Communication Style:Competitor Your teammates You are going to the park You can't win if youand supporters are today to take some don't try watching . . . pictures-You'll have the best day We need you. of anyone this week. Are going tolet all You'll be the best looking those youngsters there. beat you? Onyour marks, get set, Wow, are you go. going to look good today . . . Youneed some kudos Mary. Communication Style: Authoritarian Off your dufflady. You are going to the park We'll check in after you It is time forsome today to take some get back. action . . . pictures Remember, dowhat you Get ready for your say. activity Mary. You can let me know Yousigned up for how it went later. this. Let's get Go go go! moving. Youcan do it, so do it. Come on Mary. Time to get going

A Tagger may be a human content expert charged with adding, editing, andmaintaining content within the content suggestion system. A Tagger mustbe knowledgeable of the Content Tagging Methodology in order to ensure ahigh level of quality control and consistency, as well as havesufficient knowledge of the Intervention Model in order to make accuratetagging decisions.

A Tagger may have been trained in understanding each of the followingseven tag areas: Lifestyle/problems, Likes/Dislikes, “behavior change”categories, Difficulty, Time duration, Timeliness, and Restrictions. ATagger uses the psychology of the “behavior change” model, personalitytypes, and coaching styles to define the tags.

A Tagger may tag a suggested action for lifestyle/problems by readingthe suggested action and determining whether a person performing thataction will receive a benefit to a specific problem category. Thefollowing is an example of a self-view suggested action (SV): “Have goodposture today! Stand up straight, keep your head up, and make eyecontact. Feel the positivity radiate off of you!” This suggested actionmay benefit two self-view sub-categories: poor self-talk, which has thetag “SVST,” and fear, which has the tag “SVF.” This suggested action maybenefit the specific sub-sub-categories of Poor self-talk, which focuseson flaws, mistakes (SVST1), and fear of failing (SVF1).

The tagging process for a suggested action may include several steps.First, a Tagger may determine if the suggested action will affect eachof the problem areas (Movement, Eating, Self-View) using the process ofelimination. In the example above, a trained Tagger will agree that thesuggested action does not affect the areas of Movement nor Eating.

Next, for each of the affected areas, a Tagger may determine if thesuggested action will affect any of the sub-problem areas. In theexample above, the process of elimination leaves poor self-talk and fearas the only areas potentially affected.

Next, for each of the sub-problem areas remaining, a Tagger may use theprocess of elimination yet again to determine the specificsub-sub-problem area. In the example above, the only sub-sub-problemareas affected are negative self-talk, which focuses on flaws andmistakes, and fear of failing (SVST1 and SVF1).

After a Tagger has completed tagging suggested actions, a taggingquality-assurance person may ensure consistency before the suggestedactions are included in the useable suggestion database.

Suggestion Engine Operation with Tags

The suggestion engine 102 operates to determine what type of suggestioncontent (e.g., pre-statement, action statement, post-statement, orcombinations thereof) can be chosen for presentation through thesupporter network 104 or to the client 106. The suggestion engine 102can determine what content is appropriate based on questions that theclient 106 answers or a set of rules that can be applied to bothrestrict and narrow content, such as by weighting and filtering thesuggested actions.

FIG. 5 illustrates a grid 500 depicting relationships between examplecontent (actions 502) and tag categories (tags 504) according to anexample described herein. For example, a particular action such as “Stayhydrated in between meals today” may be associated with one or moreparticular behavior change categories, keywords, attributes,categorizations, and tag values. Further, depicted in the grid 500 areother examples of actions and associated tag values.

As depicted in grid 500, the tag categories may include: LifestyleCategory (Eating, Movement, Self-View); Sub Problem Category; Sub-SubProblem Category; Likes/Dislikes; Custom Attributes; Difficulty; TimeDuration. Content items (actions 502) which satisfy one or more of thesecategories will be tagged accordingly. For example, behavior changeattributes (attributes 1 through 6) may be defined to include: PersonalAbility; Personal Motivation; Social Ability; Social Motivation;Structural Ability; Structural Motivation.

As non-limiting examples of additional tag types and tag categories, thefollowing section outlines tags that may be deployed for thecategorization of behavior-related content.

Interest Tags

There may be any number of tag types that may be used to describe theinterests of an exemplary client, who would most likely respondpositively to the content and find the content effective. Asillustrative examples, these tags may include:

-   -   Area of Activity

The possible values for this tag may be “Urban,” “Suburban,” and“Rural.”

-   -   Outdoors

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Religiosity

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Spirituality

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Sweet Foods

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Animal-based Food Products

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Pets

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Time of Day

The possible values for this tag may be “Morning,” “Midday,”“Afternoon,” “Evening,” and “Nighttime.”

Ability Tags

There may be 10 tag types that may be used to describe the ability of anexemplary client, who would respond positively to the content andexperience a successful outcome. They are:

-   -   Cognitive

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Age

The possible values for this tag may be “Young,” “Middle-aged,” and“Elderly.”

-   -   Income

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Overall Health Status

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Readiness for Change

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Motivation

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Raw Physical Ability

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Raw Structural Ability

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Raw Self-View

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Raw Social Ability

The possible values for this tag may be “Low,” “Moderate,” and “High.”

Member State Tags

There may be three tag types used to describe an exemplary client'sstate prior to being exposed to the content. They are:

-   -   Point in Weight Loss Process

The possible values for this tag may be “Early,” “Moderate,” and “Late.”

-   -   Past Weight Loss Attempts

The possible values for this tag may be “None,” “Some,” and “Many.”

-   -   Current Program Subscriptions

The possible values for this tag may be “None,” “Some,” and “Many.”

Challenge Tags

There may be five tag types that describe potential challenges that mustbe overcome by an exemplary client in order to increase the likelihoodof a positive response to the content by the client. They are:

-   -   Structural

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Current Eating Habits

The possible values for this tag may be “Poor,” “Fair,” and “Excellent.”

-   -   Current Fitness Habits

The possible values for this tag may be “Poor,” “Fair,” and “Excellent.”

-   -   Mood

The possible values for this tag may be “Poor,” “Fair,” and “Excellent.”

-   -   Well-Being

The possible values for this tag may be “Poor,” “Fair,” and “Excellent.”

Constraint Tags

There may be six tag types that describe constraints, or requirements,that must be met or exceeded by an exemplary client in order to increasethe likelihood of a positive response to the content by the client. Theyare:

-   -   Physical Activity

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Difficulty

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Economic

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Duration

The possible values for this tag may be “Low,” “Moderate,” and “High.”

-   -   Season

The possible values for this tag may be “Spring,” “Summer,” “Fall,” and“Winter.”

-   -   Food Allergy

The possible values for this tag may be “Low,” “Moderate,” and “High.”

Tagging Model

The operations of the Content Suggestion Engine may be facilitated by atagging model in accordance with the techniques described herein. Thesuggestion is tagged with one or more keywords in order to be processedby the suggestion engine. The appropriate suggestion may then beretrieved based on the keyword tags.

Consider the example of the following suggestion: “Have an omelet forbreakfast today.” This suggestion is tagged with keyword tagsrepresenting “Egg” and “Breakfast.” Suppose the Client has indicated alike of eggs in her profile. This suggestion will be available for thesuggestion engine to apply the weightage to favor/prefer thissuggestion. The more the weightage is, the more suitable the suggestionis for the client (assuming this suggestion passes through the filterprocess).

The suggestion engine may apply different scores based on the tags.

For example, the suggestion engine may add a “+1” score with every tagthat matches with the profile, and subtract a “−1” score when the tag ofthe suggestion matches some restriction (such as an allergy) or adislike of the user's profile. Because this suggestion tag “Egg” and“Breakfast” matches with user's profile, an increased score of +2 willbe given to this suggestion.

If other users in the past have completed this suggestion a certainnumber of times, say five times, and all given positive points to thedifficulty, timeliness, and helpfulness levels, the suggestion is alsomore likely to be selected. The system keeps the average of totalratings and adds to the score, to give this suggestion more weightagefor this user. This process is a self-learning process that may usecrowdsourcing combined with profile metrics to better align the rightsuggestion with the right user. Thus, the system over time improvesthrough a dynamic process, increasing the chances that the moreappropriate suggestion is delivered to the user than a suggestion lessappropriate for the user.

Another example of tags are the specific tags for eating, movement andself-view suggestions, for example, a “MTR1” tag will be used for thesuggestion that will be helpful for the clients who have indicated theyhave a work schedule that makes it difficult to set time for exercise.Those tags again will be matched against the profile, so if the user hasindicated a difficulty to exercise because of a work schedule in his orher user profile, then +1 will be added to this suggestion. These tagsare the structured tags that provide generic and literal context whenapplied to a suggestion. The tags help classify in quick succession thecategorization for a particular suggestion. In some cases, the tags alsoprovide additional context, but is the free flowing tags that may beused to provide a more subtle description to a suggestion.

Because user profile data is structured and or can be unstructured (forexample: likes and dislike are structured, but a real-time measure ofweather is variable and unstructured), free-flowing tags may allow aqualifying tag for a suggestion to provide greater granularity. Thus,free-flowing tags also provide a suggestion with enhanced context andapplication to a user and his or her real-time metrics. Real-timemetrics can be values such as a current state of the user's environment,conditions, or any other variable that has contextual value to asuggestion and the user.

There are certain tags that may assist the suggestion engine to makecertain decisions, and those tags may be predefined in the system. Forexample, a MISC_NO_DESTINATION tag may be used for a suggestion thatneeds to be given for the user when her destination is not set. Suchtags are system tags and would assist a user's onboarding process.

Thus, tags can be structured or unstructured. The self-learningcomponent of a crowd-sourcing feedback loop all combine to provide ahigher level of context to a suggestion. A suggestion on its own doesnot provide value. It is through the tagging process and the feedbackloop that the suggestion engine is able to qualify its efficacy for aparticular user at a particular time around a particular variableenvironment.

Usage of Tagging Content in the Suggestion Engine

FIG. 6A provides an illustration of using tagged suggestion content inconnection with a filtering and weighing process 600 according to oneexample. As shown, input data in the form of unstructured suggestioncontent 602 is transformed into tagged suggestions 604 upon associationwith tags.

In this example, the content suggestion engine applies a series offilters and weights 606 based on tag values determined from the user'sprofile, taking into consideration the user's likes and dislikes,allergies, lifestyle and other preferences, to the tagged suggestions604. These filters and weights are used to apply the tagging model, toexclude or emphasize particular suggestions based on their associatedtags, and extract the most appropriate suggestions for the user 608.

After going through the profile of the user, the suggestion engine mayread the destination set by the user to identify the number ofsuggestions required in a week. For example: if the user has decided toopt for three eating-based, five activities-based and two self-basedsuggestions in a week, the suggestion engine will take into accountthese destinations and offer the appropriate amount of self-based,eating-based and activity-based suggestions.

The suggestion engine uses a filtering process to extract the bestpossible suggestion for the user based on their profile and goal. Thefiltration process includes the removal of suggestions that wererejected by the user; these suggestions if discarded once may remainrejected forever. The filtration process then goes on to reduce thesuggestions that were skipped by the user. The skipped suggestion willnot be taken into consideration for a period of time, such as the nextseven days. After this, the filtration process removes those suggestionsthat the user has already completed in a period of time, such as thelast six months, and disregards the suggestions that are alreadyavailable in the user's incoming suggestion bucket.

The next step of filtration will be applied to filter out thesuggestions based on restrictions such as user allergies and the itemsmarked as disliked by the user. For example, if one of the suggestionsincludes consuming a glass of milk and the user has defined in his orher profile that he/she is allergic to milk, such suggestions areremoved.

After the filtering is applied, the suggestion engine then applies theweightage to the suggestions based on the tagging model. Because eachsuggestion is tagged to provide a context to the suggestion, the tagscan be used to match the tag with the tags from the profile of the user.Thus, the closer that the tag values matches to the user's profile, themore weight that is given to that particular suggestion.

The next step of applying weightage is based on the difficulty,timeliness and helpfulness levels. The suggestion engine takes intoconsideration these factors and sorts out the suggestions. For example:the suggestion engine goes though the difficulty, timeliness andhelpfulness levels of suggestions which the user has rated in his or herprofile, and evaluates this information into considerations to sorts outsuggestions which are more or less of interest to a user.

Once the suggestions are sorted, the suggestion engine extracts the topweighted suggestions that are the best interest of the user for theparticular goal or destination. At this time, the extracted and sortedsuggestions are provided to the user by the suggestion engine.

FIG. 6B illustrates a process 650 of entering, tagging, storing, andmanaging content by for use with a content suggestion engine accordingto an example described herein. As illustrated, the process includes anumber of relationships between operations and data structures,including data structures further described herein. The data structuresspecifically identified in the process 650 include a Content SuggestionTuple 700, a Semantic Tagging Tuple 850, a Suggestion Tuple 900, aTagging Index Tuple 1000, and a Client Profile 1100.

As illustrated, relationships between the Content Suggestion Tuple 700and a Semantic Tagging Tuple 850, and relationships between a ClientProfile 1100 and a Tagging Index Tuple 1000, are used in connection witha function 660. The results of this function 660 provide updates to theContent Suggestion Tuple 700.

The Content Suggestion Tuple 700 and the Suggestion Tuple 900 providespecific input to a profile function 670. From the profile function 670,updates to the Client Profile 1100 include attributes of response,timeliness, satisfaction (if accepted) and effectiveness (if accepted).Additionally, an update function 680 may be used to provide updates tothe Content Suggestion Tuple 700.

Data Tagging Structures

A variety of data structures may be used in connection with the taggingfunctionalities described here. The following examples in FIG. 7-FIG. 13illustrate detailed data structures used to maintain and store tags fora particular database schema and setup. It will be understood that otherdatabase values and configurations may be maintained and utilized fortagging functions.

FIG. 7 illustrates a Content Suggestion Tuple 700 data structure forencapsulating a candidate piece of content to be considered as asuggestion to a client 106, according to an example described herein.The Content Suggestion Tuple 700 may be an 8-tuple (an “octuple”)containing the following components:

(1) Content 702—Depending on the medium of the content, this componenteither may contain the actual text of the suggestion or may contain aURL to the actual content. For example, if the suggestion format is textmessaging or email, the content 702 may contain the actual text of thesuggestion; if the suggestion format is media, the content 702 maycontain a URL to the content. Content 702 may be uniquely identified bya Content ID.

A Content ID may be a machine-generated unique identity (usually astatic, non-repeating, positive integer) of the actual content recordlocated in the content management system. In some embodiments, once apiece of content has been released into production, it cannot bemodified; to “edit” the content a copy of the content is made, a newContent ID is generated, and modifications are made to the new copy. Inaddition, a reference to the original parent content record may bemaintained. In this way, new modifications can benefit at leastpartially from what was learned about parent content (ostensiblysimilar) regarding ratings, while the integrity of the associationbetween content and ratings is maintained.

(2) Tier 704—The tier 704 indicates the level of content represented bythe Content Suggestion Tuple 700. Tiers 704 may be used by the contentsuggestion engine 102 during the iterative, interactive suggestionprocess. As the suggestion engine 102 begins formulating a list ofsuggestions for a client 106 or supporter in supporter network 104, thesuggestion engine 102 may begin with general actions. If an action isaccepted, the suggestion engine 102 may then construct a list ofsuggestions that are more specific to the selected action. Thesesecondary or second-tier suggestions may include, for example, supportmessages. Generally, the suggestion process may take a hierarchicalapproach in that lower-tiered suggestions will not be delivered untilthe related higher-tiered suggestion is first accepted by the client 106or a supporter in the supporter network 104. However, a particularresponse to a prompt may drive another support message.

The highest tier 704 may be the “general’ tier 704, which may indicate asuggestion to take a general action, such as “Do exercises each day fora week,” or the like.

The second-highest tier 704 may be the “specific” tier 704, which mayindicate a more specific suggestion, such as “Go inline-skating in thepark,” or the like. Suggestions in the “specific” tier 704 may be drivenby a positive response to a prior “general” suggestion.

The third-highest tier 704 may be the “support” tier 704; content inthis tier may be messages offering support, such as “Inline-skating letsyou enjoy the weather and work toward your goals. You can do it! Keep ontrucking!” A message in this tier 704 may be delivered to the client 106after the client 106 has accepted “specific” suggestion associated withthe message.

The fourth-highest tier 704 may be the “prompt” tier 704; content inthis tier 704 may be follow-up messages prompting the client 106 toprovide status information regarding the specific action selected. Anexample message in this tier 704 may be “On Tuesday, you decided to goinline-skating in the park for 20 minutes each day. How many times haveyou done so?”

(3) Delivery Type 706—Content 702 may be delivered to a client 106 or asupporter in the supporter network 104 in a number of different ways(e.g. email, SMS, Adobe Flash movie, MP3, etc.) The Delivery Types 706may contain a value (or values) that represent(s) the appropriatedelivery types for the content 702; the value may be encoded as a bitfield, a set of flags, or another suitable data structure thatfacilitates representing multiple types of delivery. A Tagger may beresponsible for selecting each delivery type that may be appropriate foreach piece of content 702.

For example, the Delivery Types 706 may contain a value encoded as abinary bit field with the following delivery types:

0=None

1=Email

2=SMS

4=Facebook

8=Twitter

16=Flash Player

32=MP3 Player

By assigning numeric values to each valid delivery type, such that eachnew type is assigned a value equal to twice the maximum value in theexisting list, a means of recording all combinations of delivery typeswith a single integer value is possible. For example, if a Taggerdetermines that a given piece of content can most appropriately bedelivered via email, SMS, and a Facebook Wall-to-Wall post, selectingthese three delivery types will generate an integer value of 1+2+4=7. Noother combination of delivery types can generate this value. The decimalvalue 7 is represented in binary as 000111 (NOTE: since there are sixpossible delivery types in this example, the first three zeroes areincluded as placeholders.) Given an encoded value for the Delivery Types706, it is easy to work back from the encoded value to determine whichdelivery type(s) was/were selected by simply reversing the order of thetypes and identifying which delivery types are flagged with a “1”. Forexample, given the encoded value of 26, first convert 26 into binary(011010), then check the selected delivery types with values 16 (FlashPlayer), 8 (Twitter), and 2 (SMS). To double-check this, add 16+8+2=26.

In some cases, when the suggestion engine 102 is searching for a contentsuggestion to deliver, the suggestion engine 102 may wish to limit thesearch space to suggestions with a certain delivery type. In such cases,the suggestion engine 102 may use the value(s) in the Delivery Type 706of a Content Suggestion Tuple 700 to optimize the suggestion engine'ssearch.

Naturally, content may be delivered in more than one way. For example,text-based content may be delivered via SMS, email, or a FacebookWall-to-Wall post. However, this does not imply that every possibledelivery type is necessarily appropriate for a given piece of content;therefore, a Tagger may decide which delivery type(s) is/are appropriatefor a given piece of content.

(4) Potential Effectiveness Rating 708—The “Potential EffectivenessRating” 708 of the Content Suggestion Tuple 700 may be a calculatedvalue derived from two differently weighted sources. The first sourcemay be a list of similar suggestions previously presented to the user,and the user's corresponding effectiveness ratings of those suggestions(i.e. via Suggestion Tuples, described in FIG. 9). The second source maybe the aggregate measure of Potential Effectiveness 708 of thesuggestion based on the ratings of similar clients 106.

A prompt for an Effectiveness rating may be scheduled to occur after aclient 106 logs in to the system, after a specified time period haselapsed since the suggestion was given, or a combination thereof. Therating may be recorded along with the client's profile tuples (asreferenced in FIGS. 11-12), and may be used to calculate the content'spotential effectiveness 708 for the current client, e.g., the client106.

(5) Potential Satisfaction Rating 710—At a time a suggestion is made toa client 106, the client 106 may reject, ignore, or accept a suggestion.The choice may be recorded along with the client profile tuple (asreferenced in FIGS. 11-12) and may constitute the primary term in thecalculation of the client's current potential preference for thecontent.

A prompt for a Satisfaction rating may be scheduled to occur after aclient 106 logs in to the system, after a specified time period haselapsed since the suggestion was given, or a combination thereof. Thisrating may also be recorded along with the client's profile tuples (asreferenced in FIGS. 11-12), and may constitute the secondary term in thecalculation of the client's overall preference for the content.

(6) Potential Timeliness Rating 712—At a time a suggestion is made to aclient 106, the client 106 may reject, ignore, or accept the suggestion.When rejecting a suggestion, the client 106 may indicate that thesuggestion was untimely delivered. This indicator may be recorded alongwith the client's profile tuples (as referenced in FIGS. 11-12), and mayconstitute the primary term in the calculation of the current potentialtimeliness of the content.

A prompt for a Timeliness rating may be scheduled to occur after aclient 106 logs in to the system, after a specified time period haselapsed since the suggestion was given, or a combination thereof. Thisrating may be recorded along with the client's profile tuples (asreferenced in FIGS. 11-12), and may constitute the secondary term in thecalculation of the current content's overall timeliness.

(7) Rating Count 714—The Rating Count 714 may be a fuzzy positivenumeric value representing the number of ratings of the content thathave been made by clients 106 with similar client profiles. A client 106whose client profile matches the current client's profile exactly maycontribute 1.0 to the Rating count 714. A client 106 whose clientprofile has absolutely no similarity to the current client's profile maycontribute 0.0 to the Rating count 714. A client 106 who has somesimilarity to the current client's profile may contribute a valuebetween 0.0 and 1.0, according to the degree to which their clientprofile is similar to the current client's profile.

(8) Compatibility Index 716—The Compatibility Index 716 for a suggestionmay be determined dynamically based on an aggregate fuzzy calculation ofthe degrees of similarity between certain components of the client'sprofile and certain components of the content profile. Content 702 witha high Compatibility Index 716 (e.g., approaching 1.0) might be a bettercandidate for use in a suggestion for the client 106 than might contentwith a lower index (i.e., approaching 0.0). Content 702 with aCompatibility Index 716 less than the Compatibility Threshold 856 (asreferenced in FIG. 8B) may be excluded from the list of candidates forsuggestion.

A Content Suggestion Tuple 700 may also contain a listing 718 of one ormore Content Type Tuples 800 (as referenced in FIG. 8A). A ContentSuggestion Tuple may also contain a listing 720 of one or more SemanticTagging Tuples 850 (as referenced in FIG. 8B). A Content SuggestionTuple 700 may also contain a listing 722 of references to one or moreContent Suggestion Tuples.

FIG. 8A illustrates a Content Type Tuple 800 data structure fordescribing a content type of a content suggestion according to anexample described herein. The content suggestion engine 102 may searchfor possible content suggestion candidates by filtering the contentsuggestions by content type; doing so may provide a cost-effective meansfor reducing the search space.

Each Content Type tuple 800 may have one value from each of the threedimensions (Area 802, Strength 804, and Focus 806.) The Area dimension802 can have the following values: Movement, Eating, or Self-View. TheStrength dimension 804 can have the following values: Motivation andAptitude. The Focus dimension 806 can have the following values:Personal, Group, and Environmental. For each unique combination of threedimensions to which a piece of content may be applicable, a Tagger maycreate a Content Type Tuple 800 containing those values; thus, there maybe eighteen different possible Content Type Tuples 800. In someembodiments, there are at least one and no more than eighteen ContentType Tuples 800 associated with a Content Suggestion Tuple 700 in orderfor the content suggestion to be available to the content suggestionengine 102.

FIG. 8B illustrates a Semantic Tagging Tuple 850 data structure fordescribing the degree to which a tag is compatible with the client'sprofile and other selection criteria at a time the content suggestionengine 102 selects content, according to an example described herein.Each Semantic Tagging Tuple 850 may contain the following components:(1) Tag Type 852, (2) Tag Value 854, (3) Compatibility Threshold 856,and (4) Calculated Tag Weight 858. With these four components, aSemantic Tagging Tuple 850 may provide the information necessary tocalculate the degree to which a suggestion tagged with the SemanticTagging Tuple 850 is compatible (represented by the Calculated TagWeight 858) with the client's profile, and other selection criteria, ata time the content suggestion engine 102 selects content. As such,Semantic Tagging Tuples 850 describe both the client 106 and thesuggestion.

(1) Tag Type

Within the content management system, a finite number of tags may bemaintained. General tag types (maintained with Tag Type 852) may includeDuration, Difficulty, Cost, Socialization, etc. Types of SemanticTagging Tuples 850 may include interests (i.e., area of activity),abilities (i.e., raw physical ability), client state (i.e., progresstowards goals), challenges, and constraints (i.e. physical activity).Specific tag types may also be defined for each content type. Forexample, if there is a content type called “Eating,” there may beadditional applicable tags such as “Restriction,” “Modification,”“Schedule,” etc.

The tag types may be ordinal, and may be quantifiable on a continuousnumeric domain. For example, the Difficulty tag type may be understoodto cover a fixed domain (e.g., from “Very Easy” to “Very Difficult.”)The semantic value “Very Easy” may have a corresponding numeric value of0.0, while “Very Difficult” may have a numeric value of 1.0. Betweenthese two extremes of the domain may lie a fixed number of additionalsemantic values (e.g., “Easy,” “Moderate,” and “Difficult”), and eachmay be centered on a numeric value, and may overlap. Overlappingsemantic values may be direct counterparts to fuzzy sets.

(2) Tag Value

For each Tag Type 852 there may be a fixed range of overlapping semanticvalues that cover the tag's entire domain. The Tag Value 854 of theSemantic Tagging Tuple 850 may contain the actual semantic valueassigned by a Tagger. This value may be used to determine the tag'sCalculated Tag Weight 858.

(3) Compatibility Threshold

The Compatibility Threshold 856 may be a value within the range of 0.0to 1.0. As the value approaches 1.0, there may be a heavier requirementthat the value of this tag be compatible with the value of thecorresponding component of the profile for the client 106. When thecompatibility falls below this threshold, the Calculated Tag Weight 858may be determined to be 0.0; otherwise, the Calculated Tag Weight 858may be equivalent to the compatibility value.

(4) Calculated Tag Weight

The Calculated Tag Weight 858 may be a modified measure of the degree ofcompatibility between the current Tag and a corresponding component ofthe profile for the client. If the degree of compatibility falls belowthe Compatibility Threshold, the Calculated Tag Weight 858 may be set to0.0; otherwise, the Calculated Tag Weight 858 may be equivalent to thecompatibility value.

The Calculated Tag Weight 858 may be a dynamic variable; it may becalculated after a candidate set of suggested content has been queriedand dynamically updated. For each of the candidates, the similarity oftheir tag value to that of the client's Tagging Index Value may becalculated and moderated by the Tagging Index Tuple's 1000 CurrentSemantic Truth 1010 value (as referenced in FIG. 10).

The list of Semantic Tagging Tuples 850 is created by a Tagger bydetermining the extent to which each of the available Semantic Tag Types852 applies to the content.

FIG. 9 illustrates a Prior Suggestion Tuple 900 data structure forencapsulating temporal knowledge of prior suggestions, according to anexample described herein. A Prior Suggestion Tuple 900 may be used tocalculate the Potential Effectiveness 708 and Potential Satisfaction 710ratings of a content suggestion candidate.

A Prior Suggestion Tuple 900 may contain the following components: (1) aClient ID 902, (2) a Content ID 904, (3) a Potential EffectivenessRating 906 at the Time of Suggestion, (4) a Potential SatisfactionRating 908 at the Time of Suggestion, (5) a Potential Timeliness Rating910 at the Time of Suggestion, (6) a Rating Count 912 at the Time ofSuggestion, (7) a Compatibility Index 914 at the Time of Suggestion, (8)Status 916, and (9) Status Date 918.

(1) Client ID 902 may be a machine-generated unique identity (usually astatic, non-repeating, positive integer) of the actual client recordlocated in the database.

(2) Content ID 904 may be a machine-generated unique identity (usually astatic, non-repeating, positive integer) of the actual content recordlocated in the database.

(3) The Potential Effectiveness Rating 906 at the Time of Suggestioncaptures the Potential Effectiveness 708 of the suggestion, ascalculated within the Content Suggestion Tuple 700 (as referenced inFIG. 7) at the time the suggestion was presented to the client 106.

(4) The Potential Satisfaction Rating 908 at the Time of Suggestioncaptures the Potential Satisfaction 710 of the suggestion, as calculatedwithin the Content Suggestion Tuple 700 (as referenced in FIG. 7) at thetime the suggestion was presented to the client 106.

(5) The Potential Timeliness Rating 910 at the Time of Suggestioncaptures the Potential Timeliness 712 of the suggestion, as calculatedwithin the Content Suggestion Tuple 700 (as referenced in FIG. 7) at thetime the suggestion was presented to the client 106.

(6) The Rating Count 912 at the Time of Suggestion captures the RatingCount 714 of the suggestion, as calculated within the Content SuggestionTuple 700 (as referenced in FIG. 7) at the time the suggestion waspresented to the client 106.

(7) The Compatibility Index 914 at the Time of Suggestion captures theCompatibility Index 716 of the suggestion, as calculated within theContent Suggestion Tuple 700 (as referenced in FIG. 7) at the time thesuggestion was presented to the client 106.

(8) The Status 916 stores the status of the prior suggestion. There maybe six possible Status 916 values for a prior suggestion: “Rejected,”“Rejected for Untimeliness,” “Ignored,” “Accepted and Cancelled,”“Accepted and Open,” and “Accepted and Completed.” The Status 916 may bea static value.

A Prior Suggestion Tuple 900 with a Status 916 of “Rejected” mayindicate the suggestion was rejected by the client 106.

A Prior Suggestion Tuple 900 with a Status 916 of “Rejected forUntimeliness” may indicate the suggestion was rejected by the client 106because the suggestion was delivered at an inopportune or inconvenienttime.

A Prior Suggestion Tuple 900 with a Status 916 of “Ignored” may indicatethe suggestion was ignored by the client 106.

A Prior Suggestion Tuple 900 with a Status 916 of “Accepted andCancelled” may indicate the suggestion was initially accepted by theclient 106, but the client 106 later cancelled or rejected thesuggestion.

A Prior Suggestion Tuple 900 with a Status 916 of “Accepted and Open”may indicate the suggestion was accepted by the client 106, but has notyet been completed by the client 106.

A Prior Suggestion Tuple 900 with a Status 916 of “Accepted andCompleted” may indicate the suggestion was accepted by the client 106and has been completed by the client 106.

(9) The Status Date 918 may store the date and/or time when the Status916 was set for the suggestion. The Status Date 918 may be a staticvalue.

FIG. 10 illustrates a Tagging Index Tuple 1000 data structure forrepresenting essential information regarding a client's characteristicsthat correspond to a fixed list of general and content-specific taggingtypes, according to an example described herein. Components of a TaggingIndex Tuple 1000 may include: (1) a Client ID 1002 of the client 106, towhom the Tagging Index Tuple 1000 applies, (2) a Tag Type 1004, (3) aCurrent Numeric Value 1006, (4) a Current Semantic Value 1008, and (5) aCurrent Semantic Truth Value 1010.

(1) Client ID 1002 may be a machine-generated unique identity (usually astatic, non-repeating, positive integer) of the actual client recordlocated in the database.

(2) Tag Type 1004—Within the content management system, a finite numberof tags may be maintained. The tag types 1004 may be ordinal, and may bequantifiable on a continuous numeric domain. Tag Type 1004 may be suedto match a client's current profile status with the specifiedcharacteristics (i.e., tags) of content. For each tag listed in aContent Suggestion Tuple 700, a corresponding Tagging Index Tuple 1000may be created and populated with Current Semantic Values 1008. Thesevalues may then be used (in collaboration with all the other tags listedin the Content Suggestion Tuple 700) to determine the degree to whichthe candidate content suggestion is relevant to, and compatible with,the client's current status.

(3) Current Numeric Value 1006 may be captured from the client's currentstatus via an aggregation of current values in the Client Profile 1100(as referenced in FIG. 11) or via direct prompting for a rating from theclient 106.

When a Current Semantic Value 1008 is recorded instead of a CurrentNumeric Value 1006, the Current Numeric Value 1006 may be determinedfrom the location of the Current Semantic Value 1008 on the tag'sunderlying domain.

(4) Current Semantic Value 1008 may be calculated from other values ormay be directly requested from the client 106. When a Current NumericValue 1006 is recorded instead of a Current Semantic Value 1008, theCurrent Semantic Value 1008 may be determined by the relative magnitudeof the Current Numeric Value 1006 within the context of the tag'sunderlying domain.

(5) Current Semantic Truth Value 1010—When a Current Semantic TruthValue 1010 is calculated, the degree to which the numeric value isrepresented by the Current Semantic Value 1008 may be represented on ascale from 0.0 to 1.0, with 0.0 indicating no representation to 1.0indicating complete representation. The Current Semantic Truth Value1010 may represent either the degree to which the Current Numeric Value1006 is represented by the Current Semantic Value 1008 or thetruthfulness of the assertion of the Current Semantic Value 1008.

Data Structures for Profiles and Data Tagging

FIG. 11 illustrates a Client Profile 1100 data structure for storingclient-specific information, according to an example described herein. AClient Profile 1100 may contain the following components: (1) a ClientID, (2) a Gender, (3) a Birth Date, (4) a Date of Enrollment, (5) a Dateof Last Login, (6) a Height, (8) an Enrollment Weight, (9) a CurrentObjective Starting Weight, (10) a Current Objective Target Weight, (11)a Level of System Engagement, (12) a list of rejected Prior SuggestionTuples, (13) a list of ignored Prior Suggestion Tuples, (14) a list ofcancelled Prior Suggestion Tuples, (15) a list of open Prior SuggestionTuples, (16) a list of completed Prior Suggestion Tuples, (17) a list ofTagging Index Tuples, and (18) a list of Supporters.

(1) Client ID may be a machine-generated unique identity (usually astatic, non-repeating, positive integer) of the actual client recordlocated in the database.

(2) Gender may be the gender of the client 106, as recorded in thedatabase.

(3) Birth Date may be the birth date of the client 106, as recorded inthe database. Birth Date may be used to determine dynamically theclient's age at any point in time.

(4) Date of Enrollment may be the date on which the client 106 firstenrolled in the system, and may be used to determine such metrics as“relative experience,” “level of system activity,” etc.

(5) Date of Last Login may be the date and time on which the client 106last logged into the system, and may be used to determine such metricsas “level of system activity,” “time since last suggestions weredelivered,” etc.

(6) Height may be the height of the client 106, as recorded in thedatabase.

(7) Current Weight may be the current weight of the client 106 asreported by the client 106 during the current or most recent session,during which weight was updated.

(8) Enrollment Weight may be the weight of the client 106 at the time ofenrollment into the system, as recorded in the database.

(9) Current Objective Starting Weight may be the starting weight of theclient 106 when a new Current Objective and its accompanying goals andobjectives are set.

(10) Current Objective Target Weight may be the target weight of theclient 106 under the current goals and objectives.

(11) System Engagement may be a metric of the current level ofengagement of the client 106 with the system. This metric may becalculated from frequency of logins, last login, acceptance andcompletion of suggestions, progress toward goals and objectives, etc.

(12) The list of rejected Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wasrejected by the client 106. The list may be ordered by recency ofsuggestion.

(13) The list of ignored Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wasignored by the client 106. The list may be ordered by recency ofsuggestion.

(14) The list of cancelled Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wascancelled by the client 106. The list may be ordered by recency ofsuggestion.

(15) The list of open Prior Suggestion Tuples 900—Each Prior SuggestionTuple 900 in the list may represent a suggestion that was accepted bythe client 106, but has not yet been closed (i.e., completed orcancelled) by the client 106. The list may be ordered by recency ofsuggestion.

(16) The list of completed Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wasaccepted by the client 106 and has been completed by the client 106.

(17) The list of Tagging Index Tuples 1000—For each general andcontent-type specific tag, there may be a corresponding Tagging IndexTuple 1000 in each Client Profile 1100; the Tagging Index Tuple 1000 maycapture the current index of the client 106 as it applies to its taggingcounterpart. This list may contain those Tagging Index Tuples 1000, andmay be used to calculate the Compatibility Threshold 856 component ofthe Semantic Tagging Tuple 850 (as referenced in FIG. 8B). Additionally,a number of Tagging Index Tuples 1000 may be defined that may aid thecontent suggestion engine 102 in determining whether a particularsuggestion may be appropriate at any given time. These indices aregenerally calculated in real-time based upon the historical data of theclient 106.

Examples of possible Tagging Index Tuples 1000 may include a DifficultyIndex, an Economic Index, a Restriction Index, a Success Index, aDuration Index, and a Social Index.

(18) The list of Supporters may contain references to instances of theSupporter Profile (as referenced in FIG. 12).

FIG. 12 illustrates a Supporter Profile 1200 data structure for storingsupporter-specific information, according to an example describedherein. The Supporter Profile 1200 data structure may serve a functionsimilar to that of the Client Profile 1100 data structure. Althoughsimilar to the Client Profile 1100 data structure, the Supporter Profile1200 data structure may be simpler and may be used to generatesuggestions for supporters to offer to clients.

The Supporter Profile 1200 data structure may include the followingcomponents: (1) a Supporter ID, (2) a Client ID, (3) a Birth Date, (4) aGender, (5) a Relationship to Client, (6) a Client Profile 1100, (7) alist of rejected Prior Suggestion Tuples, (8) a list of ignored PriorSuggestion Tuples, and (9) a list of accepted Prior Suggestion Tuples.

(1) Supporter ID may be a machine-generated unique identity (usually astatic, non-repeating, positive integer) of the actual supporter recordlocated in the database.

(2) Client ID may be the Client ID of the client 106, to which one ormore supporters are assigned. A Client ID may be a machine-generatedunique identity (usually a static, non-repeating, positive integer) ofthe actual client record located in the database.

(3) Birth Date may be the supporter's birth date, as recorded in thedatabase. Birth Date may be used to determine dynamically thesupporter's age at any point in time.

(4) Gender may be the supporter's gender, as recorded in the database.

(5) Relationship to Client may represent the supporter's relationship tothe client 106.

(6) Client Profile 1100 may be a reference to the Client Profile 1100data structure (as referenced in FIG. 11) for the supporter's client.

(7) The list of rejected Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wasrejected by the supporter (or the client 106). The list may be orderedby recency of suggestion.

(8) The list of ignored Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wasignored by the supporter (or the client 106). The list may be ordered byrecency of suggestion.

(9) The list of accepted Prior Suggestion Tuples 900—Each PriorSuggestion Tuple 900 in the list may represent a suggestion that wasaccepted by the supporter and delivered to the client 106.

In further examples, the information system may match a client humanuser to supporter human users in a social network defined by thesupporters. The supporter human users may be used to route one or moreaction statements, selected by the content suggestion engine based on atag value associated with the action statements. The client may bematched to the supporter users by matching tags that correspond tocharacteristics of the client with tags corresponding to characteristicsof the respective supporter users. The supporters may filter, refine andplace the action statement and associated content in a more meaningfulcontext by providing direct interaction and delivery of the content tothe client.

FIG. 13 illustrates an object-relational diagram 1300 for storing acontent item and associating the content item with tagging and contentattributes, according to an example described herein. In theobject-relational diagram 1300, each box may represent a table in adatabase. Static information pertaining to a piece of content may bestored in the database in a manner that allows for efficient storage andrapid search and retrieval.

The first box represents the Content table 1302. In object modelingterms, this is the main class in the object-relational diagram 1300.

The other boxes, ContentDelivery 1304, ContentContentType 1308, andContentTag 1316 represent classes that may be contained by the Contentclass 1302. An instance of the Content class 1302 may contain instancesof classes ContentDelivery 1304, ContentContentType 1308, and ContentTag1316. The instances of these classes may be contained in lists (e.g., alisting 718 of Content Type Tuples may be implemented as a list ofinstances of the ContentContentType class 1308).

The other boxes DeliveryType 1306, ContentArea 1310, ContentStrength1312, ContentFocus 1314, and TagType 1318 represent types of tags withinpredefined categories that may be assigned to a piece of content. Thesemay be considered “lookup” tables, and may generally be implemented asutility classes in the object model.

The other boxes TagCategory 1320 and DesireTypeValue 1322 representfixed labels and values from which the value stored in the correspondinggreen boxes may be selected, or the tags are filtered. These may be“lookup” tables and may generally be implemented as utility classes inthe object model.

Application of Data Tagging to Suggested Actions

FIG. 14 illustrates a user interface 1400 of a tagging facility foradding tagging content items according to an example described herein.The user interface 1400 of the tagging facility may list the contentitems and tag categories used in the system. The tagging facility may beused by an administrative user or other skilled person to input anddefine new tags in the various input fields.

FIG. 15 illustrates a second user interface 1500 of a tagging facility.The tagging facility may enable a user to search for content, and mayallow a user to add, edit, or delete content. In some embodiments, aparticular piece of content may not be deleted after the content hasbeen used. In some embodiments, a particular piece of content can bedisabled or hidden from the content suggestion engine 102.

The user interfaces 1400, 1500 of the may allow a tagger to edit contentand content properties, to assign types, and to tag specific actionstatements and other content items. The grouping of types and tags intocategories may ease the tagging process and may facilitate quick,accurate, and consistent tagging of content. Content, along with itsconstituent properties, may be complex, therefore necessitating agraphical user interface for form-based editing to facilitate tagging ofmultidimensional content. The tagging facility enables selecting andassigning particular behavior/psychological related tags to a particularaction statement.

As one example, the tagging may enable: creation of suggestions toinclude an action statement with an additional description; addition ofpre- and post-“personalization” statements; application of thesuggestions by trained “Taggers”; and performance of a qualityinspection review by trained persons. As a result of the tagging in theuser interfaces 1400, 1500, suggestions can be loaded into a databaseavailable to clients and supporters.

Example Technique and System Implementations

FIG. 16 illustrates a flowchart of a method 1600 for tagging data forconsumption by a content suggestion engine or other component of aninformation system. As depicted, the operations include the definitionof content (operation 1610) within the information system. The content,for example, may include various action statements, pre- andpost-statements, combinations of action statements and pre/poststatements, in textual or multimedia form.

Additionally, the operations include the definition of tags and relevanttagging categorizations and attributes (operation 1620) within theinformation system. This may include the establishment of a hierarchicalor relational tagging structure, to classify associated attributes orcharacteristics within the tags.

Next, further operations include the association of the respectivecontent items with one or more tags (operation 1630). This may includethe assignment of various tags based on the content item itself,provided from human or automated classifications.

Upon establishment of the content items and tags, and tagging operationsupon the content items, the content items may be retrieved by tag.

Appropriate retrieval operations may include the retrieval ofappropriate content based on one or more tags that match the currentcondition of the user. For example, specific operations may includedetermining the one or more user conditions for content selection(operation 1640), determining applicable tags based on the one or moreuser conditions (operation 1650), and selecting one or more contentitems for the user, from the information system, using content matchingthe applicable tags (operation 1660). The user conditions for contentselection in particular may be related to the achievement or progressfor the overall or environmental goal. Thus, if a particular userencounters some user condition (e.g., obstacle or hindrance) to achievethe goal, applicable tags to address the user condition may be selected,and accordingly content items matching the applicable tag (addressingthe user condition) may be retrieved.

FIG. 17 illustrates an example of a system configuration of aninformation system 1700 configured to provide content. The informationsystem 1700 can include a content database 1702, a rules database 1704,a goal information database 1706, a client information database 1708, asuggested action database 1710, a tagging database 1712, and a playlistdatabase 1714.

The content database 1702 can include information from external sources,such as the supporter network 104, a professional expert working in afield relevant to a goal 204, other databases, or a combination thereof,among others. The rules database 1704 can include rules for formattingand providing personalized suggested actions to the client 106. Suchrules can include timing restrictions, wording suggestions orrestrictions, or suggested action restrictions (e.g., a suggested actionmessage 402 with a certain tag should not be presented to a specificclient).

The goal information database 1706 can include data relevant to gettingthe client 106 to achieve a particular goal 204. The goal informationcan include certain activities that are essential to achieving a goal204 (e.g., running a marathon requires the client to run to achieve thegoal 204), recommended for achieving the goal 204 (e.g., stretchingmuscles and breathing exercises are helpful, but not essential, intraining for a marathon), fun (e.g., things to keep the client 106 in apositive state of mind or reward the client 106 for their hard work orachievements), or a combination thereof, among others.

The client information database 1708 can include information gained fromquestionnaires or learned through the client 106 or supporters in thesupporter network 104 using the system. The client information database1708 can include information about all users of the system includingsupporters, clients 106, administrators of the system, or potentialclients, among others. The suggested action database 1710 can includesuggested actions such as suggested action message 402 includingpre-statements 404, action statements 406, and post-statements 408. Thesuggested action database 1710 can also include a record of which clienthas completed which suggested action message 402, when the client 106completed the suggested action message 402, or how long it has beensince the system recommend that suggested action message 402 to theclient 106.

The tagging database 1712 can include a record of all the tags andtagging relationships that have been created for suggested actions,playlists, or programs, and which suggested actions, programs, orplaylists the tag is associated with. The playlist database 1714 may beused to generate a playlist of tagged content (such as suggestedactions), provided in accordance with operations of the contentsuggestion module 1720.

While FIG. 17 shows seven separate databases 1702-1712, the informationcontained within the databases may be contained within any number ofdatabases. For example, the information in the tagging, suggestedaction, and playlist databases 1710, 1712, 1714 might be combined into asingle database.

The information system 1700 can include one or more modules including acontent suggestion module 1720, a delivery module 1730, a feedbackmodule 1740, a monitoring module 1750, a supporter module 1760, aconditions module 1770, a tagging module 1780, or a goal status module1790. The content suggestion module 1720 can receive suggested actionsor have access to the suggested action database 1710. The contentsuggestion module 1720 can include the filter(s) 410 and the weight(s)412, such as to allow the content suggestion module 1720 to filter,prioritize, or present suggested actions to the client 106.

The delivery module 1730 can present at least one suggested actionmessage 402 or associated message to the supporter network 104 or theclient 106, such as at a certain relevant time. The delivery module 1730can be configured to modify or amend the suggested action message 402 ormessage that is delivered so as to be appropriate for the client 106.Such a configuration can make the client 106 more likely to complete thesuggested action message 402.

The feedback module 1740 can be configured to receive feedback aboutsuggested actions from a client 106, process the feedback, and send theprocessed feedback to the client information database 1708, rulesdatabase 1704, or content database 1702, or suggested action database1710.

The monitoring module 1750 can be configured to monitor a client'sprogress towards their goal(s) 204, a client's progress on completing asuggested action message 402, program, or playlist, and can provide thedelivery module 1730 with information relevant to what messages (e.g.,prompts, reminders, or encouragements) should be sent to the client 106.

The supporter module 1760 can be configured to provide the supporternetwork 104 with the ability to make suggestions for a suggested actionmessage 402 to present to the client 106, provide information relevantto getting the client 106 to their goal 204 (e.g., likes, dislikes,barriers 214, or incentives 216 for the client 106, etc.), suggestmessages to send to the client 106 that can be modified by the deliverymodule 1730, or suggest tags that should be associated with the client106.

The conditions module 1770 can be configured to maintain relevantinformation from the ecosystem of conditions 212 and the client dataconditions 108 that are relevant to the selection and delivery ofrelevant content. This may include direct or derived contextual data, ordata relevant to barriers and incentives. For example, the contextualinformation maintained in conditions module may provide input for rulesto express the conditions to deliver content to the proper user, at theproper time, in the proper context, and with the proper communicationmedium.

The tagging module 1780 can be configured to maintain and manage taggingprocess to transform unstructured data (not necessarily relevant to aparticular user) stored among the various databases into structured data(relevant to a particular user) for use in achieving a goal. The taggingmodule 1780 may be used to apply tags to various content stored in thecontent database 1702; to classify tags to rules stored in the rulesdatabase 1704; and to associate tags with data in the goal informationdatabase 1706, client information database 1708, and suggested actiondatabase 1710.

Further, the goal status module 1790 can be configured to maintain andmanage a user's goal status and operations related to the achievement ofthe user's goal status. This may integrate in connection with thetagging module 1780 to provide particular tags to items based on auser's goal status and other information stored in the goal informationdatabase 1706.

Computing System Architectures and Example Implementations

FIG. 10 is a block diagram illustrating an example computer systemmachine upon which any one or more of the methodologies herein discussedmay be run. Computer system 1800 may be embodied as a computing device,providing operations of the content suggestion engine 102 or informationsystem 1700 (from FIGS. 1 and 17), or any other processing or computingplatform or component described or referred to herein. In alternativeembodiments, the machine operates as a standalone device or may beconnected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of either a serveror a client machine in server-client network environments, or it may actas a peer machine in peer-to-peer (or distributed) network environments.The computer system machine may be a personal computer (PC) that may ormay not be portable (e.g., a notebook or a netbook), a tablet, a set-topbox (STB), a gaming console, a Personal Digital Assistant (PDA), amobile telephone or smartphone, a web appliance, a network router,switch or bridge, or any machine capable of executing instructions(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while only a single machine is illustrated, the term“machine” shall also be taken to include any collection of machines thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the methodologies discussed herein.

Example computer system 1800 includes a processor 1802 (e.g., a centralprocessing unit (CPU), a graphics processing unit (GPU) or both), a mainmemory 1804 and a static memory 1806, which communicate with each othervia an interconnect 1808 (e.g., a link, a bus, etc.). The computersystem 1800 may further include a video display unit 1810, analphanumeric input device 1812 (e.g., a keyboard), and a user interface(UI) navigation device 1814 (e.g., a mouse). In one embodiment, thevideo display unit 1810, input device 1812 and UI navigation device 1814are a touch screen display. The computer system 1800 may additionallyinclude a storage device 1816 (e.g., a drive unit), a signal generationdevice 1818 (e.g., a speaker), an output controller 1832, a powermanagement controller 1834, and a network interface device 1820 (whichmay include or operably communicate with one or more antennas 1830,transceivers, or other wireless communications hardware), and one ormore sensors 1828, such as a GPS sensor, compass, location sensor,accelerometer, or other sensor.

The storage device 1816 includes a machine-readable medium 1822 on whichis stored one or more sets of data structures and instructions 1824(e.g., software) embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 1824 mayalso reside, completely or at least partially, within the main memory1804, static memory 1806, and/or within the processor 1802 duringexecution thereof by the computer system 1800, with the main memory1804, static memory 1806, and the processor 1802 also constitutingmachine-readable media.

While the machine-readable medium 1822 is illustrated in an exampleembodiment to be a single medium, the term “machine-readable medium” mayinclude a single medium or multiple media (e.g., a centralized ordistributed database, and/or associated caches and servers) that storethe one or more instructions 1824. The term “machine-readable medium”shall also be taken to include any tangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present disclosure or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, opticalmedia, and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including, by way of example, semiconductormemory devices (e.g., Electrically Programmable Read-Only Memory(EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM))and flash memory devices; magnetic disks such as internal hard disks andremovable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

The instructions 1824 may further be transmitted or received over acommunications network 1826 using a transmission medium via the networkinterface device 1820 utilizing any one of a number of well-knowntransfer protocols (e.g., HTTP). Examples of communication networksinclude a local area network (LAN), wide area network (WAN), theInternet, mobile telephone networks, Plain Old Telephone (POTS)networks, and wireless data networks (e.g., Wi-Fi, 3G, and 4G LTE/LTE-Aor WiMAX networks). The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding, orcarrying instructions for execution by the machine, and includes digitalor analog communications signals or other intangible medium tofacilitate communication of such software.

Other applicable network configurations may be included within the scopeof the presently described communication networks. Although exampleswere provided with reference to a local area wireless networkconfiguration and a wide area Internet network connection, it will beunderstood that communications may also be facilitated using any numberof personal area networks, LANs, and WANs, using any combination ofwired or wireless transmission mediums.

The embodiments described above may be implemented in one or acombination of hardware, firmware, and software. For example, thesuggestion engine 102 can include or be embodied on a server running anoperating system with software running thereon. While some embodimentsdescribed herein illustrate only a single machine or device, the terms“system”, “machine”, or “device” shall also be taken to include anycollection of machines or devices that individually or jointly execute aset (or multiple sets) of instructions to perform any one or more of themethodologies discussed herein.

Embodiments may also be implemented as instructions stored on acomputer-readable storage device or storage medium, which may be readand executed by at least one processor to perform the operationsdescribed herein. A computer-readable storage device or storage mediummay include any non-transitory mechanism for storing information in aform readable by a machine (e.g., a computer). For example, acomputer-readable storage device or storage medium may include read-onlymemory (ROM), random-access memory (RAM), magnetic disk storage media,optical storage media, flash-memory devices, and other storage devicesand media. In some embodiments, the electronic devices and computingsystems described herein may include one or more processors and may beconfigured with instructions stored on a computer-readable storagedevice.

Examples, as described herein, may include, or may operate on, logic ora number of components, modules, or mechanisms. Modules are tangibleentities (e.g., hardware) capable of performing specified operations andmay be configured or arranged in a certain manner. In an example,circuits may be arranged (e.g., internally or with respect to externalentities such as other circuits) in a specified manner as a module. Inan example, the whole or part of one or more computer systems (e.g., astandalone, client or server computer system) or one or more hardwareprocessors may be configured by firmware or software (e.g.,instructions, an application portion, or an application) as a modulethat operates to perform specified operations. In an example, thesoftware may reside on a machine readable medium. In an example, thesoftware, when executed by the underlying hardware of the module, causesthe hardware to perform the specified operations.

Accordingly, the term “module” is understood to encompass a tangibleentity, be that an entity that is physically constructed, specificallyconfigured (e.g., hardwired), or temporarily (e.g., transitorily)configured (e.g., programmed) to operate in a specified manner or toperform part or all of any operation described herein. Consideringexamples in which modules are temporarily configured, each of themodules need not be instantiated at any one moment in time. For example,where the modules comprise a general-purpose hardware processorconfigured using software, the general-purpose hardware processor may beconfigured as respective different modules at different times. Softwaremay accordingly configure a hardware processor, for example, toconstitute a particular module at one instance of time and to constitutea different module at a different instance of time.

Additional examples of the presently described method, system, anddevice embodiments include the following, non-limiting configurations.Each of the following non-limiting examples can stand on its own, or canbe combined in any permutation or combination with any one or more ofthe other examples provided below or throughout the present disclosure.

A first example can include the subject matter (such as an apparatus, amethod, a means for performing acts, or a machine readable mediumincluding instructions that, when performed by the machine, that cancause the machine to perform acts), for facilitating communications froma goal-based information system, comprising: obtaining an actionstatement stored in a database of unstructured data; selecting a tagfrom a hierarchy of tags, wherein the tag relates to a characteristic ofa human action described by the action statement; and associating theaction statement with the tag in a database of structured data, for useby a content suggestion engine; wherein the tag provides information tothe content suggestion engine to select and incorporate the actionstatement within a content suggestion generated for a human user, andwherein the human action described by the action statement is selectedby the content suggestion engine to encourage progress towards a goaldefined by the human user.

A second example can include, or can optionally be combined with thesubject matter of one or any combination of the first example, toinclude subject matter (such as an apparatus, a method, a means forperforming acts, or a machine readable medium including instructionsthat, when performed by the machine, that can cause the machine toperform acts), for an information system, comprising: a tagging moduleimplemented using a processor, the tagging module configured to:associate multiple tags to respective content items; and a contentsuggestion module implemented using the processor, the contentsuggestion module configured to: determine a subset of the content itemsbeing related to a goal of a human user; and select a content item fromthe subset of content items for suggestion to the human user, based on amatch of profile characteristics stored for the human user to themultiple tags associated with the subset of content items.

A third example can include, or can optionally be combined with thesubject matter of one or any combination of the first example and thesecond example, to include subject matter (such as an apparatus, amethod, a means for performing acts, or a machine readable mediumincluding instructions that, when performed by the machine, that cancause the machine to perform acts), for instructions of an computingdevice, configured to cause the computing device to: generate a tagginginterface for display within a graphical user interface accessible by anadministrative user to: define a plurality of tags in a hierarchicalcategorization for application to respective content items; and applythe plurality of tags to the respective content items; select contentitems using a content suggestion engine, the content suggestion engineconfigured to: determine a condition of a client user indicated by auser profile associated with the client user; determine an applicabletag based on the conditions of the client user indicated by the userprofile; and select a subset of the content items for delivery to aclient user using the applicable tag; and generate a content interfacefor display within a graphical user interface accessible by the clientuser to: display the subset of the content items to the client userusing the graphical user interface.

The following claims are hereby incorporated into the detaileddescription, with each claim and identified combination of claimsstanding on its own as a separate example.

What is claimed is:
 1. A method of tagging data for use by a contentsuggestion engine, the method comprising: obtaining an action statementstored in a database of unstructured data; selecting a tag from ahierarchy of tags, wherein the tag relates to a characteristic of ahuman action described by the action statement; and associating theaction statement with the tag in a database of structured data, for useby a content suggestion engine; wherein the tag provides information tothe content suggestion engine to select and incorporate the actionstatement within a content suggestion generated for a human user, andwherein the human action described by the action statement is selectedby the content suggestion engine to encourage progress towards a goaldefined by the human user.
 2. The method of claim 1, further comprising:selecting the action statement using the content suggestion engine, theaction statement being selected by the content suggestion engine basedon a match of the tag to a characteristic of the human user, wherein thehierarchy of tags defines groupings of tags correlating to categories ofhuman behaviors and actions.
 3. The method of claim 2, wherein thecharacteristic of the human user is determined from a profile of thehuman user, and wherein the action statement is selected by the contentsuggestion engine based on a match of the characteristic of the humanaction to the profile of the human user.
 4. The method of claim 3,wherein the action statement is selected by the content suggestionengine from a plurality of action statements matching the tag.
 5. Themethod of claim 2, wherein selecting the action statement includes thecontent suggestion engine filtering action statements by multiple filtertags, the filter tags corresponding to actions previously completed bythe human user, actions previously rejected by the human user, orrestrictions of the human user.
 6. The method of claim 5, whereinselecting the action statement includes the content suggestion engineproviding a selection preference to action statements using a weightingtag, the weighting tag corresponding to a preference of the human user.7. The method of claim 2, further comprising: selecting a pre-statementfor the action statement using the tag; selecting a post-statement forthe action statement using the tag; and generating a content item fordelivery to the human user using the pre-statement, the actionstatement, and the post-statement.
 8. The method of claim 1, wherein thetag defines multiple behavior change attributes relevant to behavior ofthe human user.
 9. The method of claim 1, wherein the tag corresponds toa characteristic of the human user stored in a user profile maintainedfor the human user.
 10. The method of claim 1, further comprising:selecting the action statement based on the tag using the contentsuggestion engine; and matching the human user to supporter human usersin a social network; wherein the supporter human users are used to routeand modify the action statement to be presented to the human user. 11.The method of claim 10, wherein the human user is matched to thesupporter users based on matching tags corresponding to characteristicsof the human user with tags corresponding to characteristics of thesupporter users.
 12. An information system, comprising: a tagging moduleimplemented using a processor, the tagging module configured to:associate multiple tags to respective content items; and a contentsuggestion module implemented using the processor, the contentsuggestion module configured to: determine a subset of the content itemsbeing related to a goal of a human user; and select a content item fromthe subset of content items for suggestion to the human user, based on amatch of profile characteristics stored for the human user to themultiple tags associated with the subset of content items.
 13. Theinformation system of claim 12, further comprising: a goal status moduleimplemented using the processor, the goal status module configured todetermine information for the goal of the human user.
 14. Theinformation system of claim 13, further comprising: a monitoring moduleimplemented using the processor, the monitoring module configured tomonitor activity by the human user to determine a completion status ofthe goal of the human user.
 15. The information system of claim 12,further comprising: a delivery module implemented using the processor,the delivery module configured to provide the selected content item tothe human user using a content delivery medium; and a feedback moduleimplemented using the processor, the feedback module configured tocollect feedback on the selected content item from the human user. 16.The information system of claim 15, further comprising: a contentdatabase configured to store the content items; a goal informationdatabase configured to store data on an accomplishment status of thegoal by the human user; a user information database configured to storethe profile characteristics for the human user; a tagging databaseconfigured to store the multiple tags; and a suggestion action databaseconfigured to store the suggested actions of the respective contentitems.
 17. The information system of claim 16, further comprising: aplaylist database configured to store a playlist of tagged content;wherein the delivery module is further configured to provide the contentitems from the playlist of tagged content.
 18. A machine-readablestorage medium comprising a plurality of instructions, which whenexecuted on a computing device, cause the computing device to: generatea tagging interface for display within a graphical user interfaceaccessible by an administrative user to: define a plurality of tags in ahierarchical categorization for application to respective content items;and apply the plurality of tags to the respective content items; selectcontent items using a content suggestion engine, the content suggestionengine configured to: determine a condition of a client user indicatedby a user profile associated with the client user; determine anapplicable tag based on the condition of the client user indicated bythe user profile; and select a subset of the content items forpresentation to a client user using the applicable tag; and generate acontent interface for display within a graphical user interfaceaccessible by the client user to: display the subset of the contentitems to the client user using the graphical user interface.
 19. Themachine-readable storage medium of claim 18, wherein operations of thecontent suggestion engine to determine the condition of a client userinclude matching multiple characteristics of the user profile tocharacteristics associated with respective groupings of tags in thehierarchical categorization; wherein operations of the contentsuggestion engine to determine the applicable tag based the condition ofthe client user include selecting the applicable tag from the respectivegroupings of tags; and wherein operations of the content suggestionengine to select the subset of the content items for presentation to theclient user include adding a weight to tags associated with contentitems rated favorably by the client user, and filter content itemshaving tags correlating to a restriction by the client user.
 20. Themachine-readable storage medium of claim 18, wherein operations todefine the plurality of tags in the hierarchical categorization includeestablishing an assignment of the tags to multiple tag values; andwherein operations of the content suggestion engine to select the subsetof the content items for presentation to the client user includedetermining current contextual values for the client user and selectingtags based on the current contextual values.
 21. The machine-readablestorage medium of claim 18, wherein instructions to select content itemsusing the content suggestion engine include instructions, which whenexecuted by the computing device, cause the computing device to select apre-statement for the content item and select a post-statement for thecontent item based on the applicable tag.
 22. The machine-readablestorage medium of claim 18, wherein instructions to generate the contentinterface for display within the graphical user interface accessible bythe client user include instructions, which when executed by thecomputing device, cause the computing device to receive responses to thesubset of the content items to further restrict selection of the contentitems.
 23. The machine-readable storage medium of claim 18, whereininstructions to generate the content interface for display within thegraphical user interface accessible by the client user includeinstructions, which when executed by the computing device, cause thecomputing device to display information related to a defined goal of theclient user based on the applicable tag.